diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc
index 36a4e36..ec45e40 100644
--- a/compiler/cpp/src/generate/t_go_generator.cc
+++ b/compiler/cpp/src/generate/t_go_generator.cc
@@ -2793,7 +2793,7 @@
             indent() << "if err != nil {" << endl <<
             indent() << "  return fmt.Errorf(\"error reading set begin: %s\", err)" << endl <<
             indent() << "}" << endl <<
-            indent() << "tSet := make(map[" << type_to_go_key_type(t->get_elem_type()) << "]bool, size)" << endl <<
+            indent() << "tSet := make(map[" << type_to_go_key_type(t->get_elem_type()->get_true_type()) << "]bool, size)" << endl <<
             indent() << prefix << eq << " " << (pointer_field ? "&" : "") << "tSet" << endl;
     } else if (ttype->is_list()) {
         out <<
@@ -3412,7 +3412,7 @@
     t_type* resolved_type = type;
 
     while (resolved_type->is_typedef()) {
-        resolved_type = ((t_typedef*)resolved_type)->get_type();
+        resolved_type = ((t_typedef*)resolved_type)->get_type()->get_true_type();
     }
 
     if (resolved_type->is_map() || resolved_type->is_list() || resolved_type->is_set()) {
@@ -3423,7 +3423,7 @@
         ((t_base_type*) resolved_type)->is_binary())
         return "string";
 
-    return type_to_go_type(type);
+    return type_to_go_type(type, true);
 }
 
 /**
@@ -3484,11 +3484,11 @@
         return maybe_pointer + string("map[") + keyType + "]" + valueType;
     } else if (type->is_set()) {
         t_set* t = (t_set*)type;
-        string elemType = type_to_go_key_type(t->get_elem_type());
+        string elemType = type_to_go_key_type(t->get_elem_type()->get_true_type());
         return maybe_pointer + string("map[") + elemType + string("]bool");
     } else if (type->is_list()) {
         t_list* t = (t_list*)type;
-        string elemType = type_to_go_type(t->get_elem_type(), true);
+        string elemType = type_to_go_type(t->get_elem_type()->get_true_type(), true);
         return maybe_pointer + string("[]") + elemType;
     } else if (type->is_typedef()) {
         return maybe_pointer + publicize(type_name(type));
