diff --git a/compiler/cpp/src/generate/t_cocoa_generator.cc b/compiler/cpp/src/generate/t_cocoa_generator.cc
index e527ab6..7e26ee2 100644
--- a/compiler/cpp/src/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/generate/t_cocoa_generator.cc
@@ -395,10 +395,10 @@
     if ((*c_iter)->get_type()->is_container() ||
         (*c_iter)->get_type()->is_struct()) {
       print_const_value(f_impl_, 
-			cocoa_prefix_+(*c_iter)->get_name(),
-			(*c_iter)->get_type(),
-			(*c_iter)->get_value(),
-			false, false);
+           cocoa_prefix_+(*c_iter)->get_name(),
+           (*c_iter)->get_type(),
+           (*c_iter)->get_value(),
+           false, false);
       f_impl_ << ";" << endl;
     }
   }
@@ -731,10 +731,10 @@
     if (members.size() > 0) {
       out << "#if TARGET_OS_IPHONE || (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)" << endl;
       for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
-	t_type* t = get_true_type((*m_iter)->get_type());
-	if ((*m_iter)->get_value() != NULL) {
-	  print_const_value(out, "self."+(*m_iter)->get_name(), t, (*m_iter)->get_value(), false, true);
-	}
+        t_type* t = get_true_type((*m_iter)->get_type());
+        if ((*m_iter)->get_value() != NULL) {
+          print_const_value(out, "self."+(*m_iter)->get_name(), t, (*m_iter)->get_value(), false, true);
+        }
       }
       out << "#endif" << endl;
     }
@@ -758,9 +758,9 @@
       t_type* t = get_true_type((*m_iter)->get_type());
       out << indent() << "__" << (*m_iter)->get_name() << " = ";
       if (type_can_be_null(t)) {
-	out << "[" << (*m_iter)->get_name() << " retain_stub];" << endl;
+        out << "[" << (*m_iter)->get_name() << " retain_stub];" << endl;
       } else {
-	out << (*m_iter)->get_name() << ";" << endl;
+        out << (*m_iter)->get_name() << ";" << endl;
       }
       out << indent() << "__" << (*m_iter)->get_name() << "_isset = YES;" << endl;
     }
@@ -1461,12 +1461,14 @@
     // Declare the function arguments
     bool first = true;
     for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
+      string fieldName = (*fld_iter)->get_name();
+      out << " ";
       if (first) {
         first = false;
+        out << ": " << fieldName;
       } else {
-        out << " ";
+        out << fieldName << ": " << fieldName;
       }
-      out << ": " << (*fld_iter)->get_name();
     }
     out << "];" << endl;
 
@@ -1598,9 +1600,15 @@
     t_struct* arg_struct = (*f_iter)->get_arglist();
     const vector<t_field*>& fields = arg_struct->get_members();
     vector<t_field*>::const_iterator fld_iter;
+    bool first = true;
     for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
       string fieldName = (*fld_iter)->get_name();
-      out << ": [args " << fieldName << "]";
+      if (first) {
+        first = false;
+        out << ": [args " << fieldName << "]";
+      } else {
+        out << " " << fieldName << ": [args " << fieldName << "]";
+      }
     }
     out << "]";
     if (!(*f_iter)->get_returntype()->is_void()) {
