diff --git a/compiler/cpp/src/thrift/generate/t_swift_generator.cc b/compiler/cpp/src/thrift/generate/t_swift_generator.cc
index a1d3211..31db04d 100644
--- a/compiler/cpp/src/thrift/generate/t_swift_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_swift_generator.cc
@@ -299,10 +299,10 @@
   string module = get_real_swift_module(program_);
   string out_dir = get_out_dir();
   string module_path = out_dir;
-  string name = capitalize(program_name_);
+  string name = program_name_;
   if (namespaced_ && !module.empty()) {
     module_path = module_path + "/" + module;
-    name = capitalize(module);
+    name = module;
   }
   MKDIR(module_path.c_str());
 
@@ -1060,7 +1060,7 @@
   const vector<t_field*>& fields = tstruct->get_members();
   vector<t_field*>::const_iterator f_iter;
   for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
-    indent(out) << "case (" << (*f_iter)->get_key() << ", " << type_to_enum((*f_iter)->get_type()) << "):";// << endl;
+    indent(out) << "case (" << (*f_iter)->get_key() << ", " << type_to_enum((*f_iter)->get_type()) << "):";
     string padding = "";
 
     t_type* type = get_true_type((*f_iter)->get_type());
@@ -1165,7 +1165,7 @@
 
     // Generate deserialization code for known cases
     for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
-      indent(out) << "case (" << (*f_iter)->get_key() << ", " << type_to_enum((*f_iter)->get_type()) << "):";// << endl;
+      indent(out) << "case (" << (*f_iter)->get_key() << ", " << type_to_enum((*f_iter)->get_type()) << "):";
       string padding = "";
 
       t_type* type = get_true_type((*f_iter)->get_type());
@@ -2414,7 +2414,14 @@
 
       if (!gen_cocoa_) {
         for (x_iter = xfields.begin(); x_iter != xfields.end(); ++x_iter) {
-          indent(out) << "catch let error as " << (*x_iter)->get_type()->get_name();
+          indent(out) << "catch let error as ";
+
+          t_program* program = (*x_iter)->get_type()->get_program();
+          if ((*x_iter)->get_type()->get_name() == "Error" && namespaced_ && program != program_) {
+            out << get_real_swift_module(program) << ".";
+          }
+          out << (*x_iter)->get_type()->get_name();
+
           out << " { result." << (*x_iter)->get_name() << " = error }" << endl;
         }
 
diff --git a/lib/swift/README.md b/lib/swift/README.md
index 2ad88d6..4fdeacf 100644
--- a/lib/swift/README.md
+++ b/lib/swift/README.md
@@ -20,8 +20,6 @@
 specific language governing permissions and limitations
 under the License.
 
-Brought to you by [FiscalNote, Inc](http://www.fiscalnote.com/)
-
 
 ## Build
 
