diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc
index c3cca60..0ca4946 100644
--- a/compiler/cpp/src/generate/t_go_generator.cc
+++ b/compiler/cpp/src/generate/t_go_generator.cc
@@ -167,7 +167,8 @@
                                   bool inclass = false,
                                   bool coerceData = false,
                                   bool inkey = false,
-                                  bool in_container = false);
+                                  bool in_container = false
+                                  bool use_true_type = false);
 
   void generate_deserialize_struct(std::ofstream& out,
                                    t_struct* tstruct,
@@ -2580,7 +2581,8 @@
                                                 bool inclass,
                                                 bool coerceData,
                                                 bool inkey,
-                                                bool in_container_value) {
+                                                bool in_container_value,
+                                                bool use_true_type) {
   (void)inclass;
   (void)coerceData;
   t_type* orig_type = tfield->get_type();
@@ -2602,8 +2604,12 @@
   } else if (type->is_base_type() || type->is_enum()) {
 
     if (declare) {
-      string type_name = inkey ? type_to_go_key_type(tfield->get_type())
-                               : type_to_go_type(tfield->get_type());
+      t_type* actual_type = use_true_type ? tfield->get_type()->get_true_type() 
+                                          : tfield->get_type();
+
+      string type_name = inkey ? type_to_go_key_type(actual_type) 
+                               : type_to_go_type(actual_type);
+
       out << "var " << tfield->get_name() << " " << type_name << endl;
     }
 
@@ -2664,7 +2670,7 @@
     out << "} else {" << endl;
     string wrap;
 
-    if (type->is_enum() || orig_type->is_typedef()) {
+    if (type->is_enum() || (orig_type->is_typedef() && !use_true_type)) {
       wrap = publicize(type_name(orig_type));
     } else if (((t_base_type*)type)->get_base() == t_base_type::TYPE_BYTE) {
       wrap = "int8";
@@ -2812,7 +2818,7 @@
   string elem = tmp("_elem");
   t_field felem(tset->get_elem_type(), elem);
   felem.set_req(t_field::T_OPT_IN_REQ_OUT);
-  generate_deserialize_field(out, &felem, true, "");
+  generate_deserialize_field(out, &felem, true, "", false, false, false, true, true);
   indent(out) << prefix << "[" << elem << "] = true" << endl;
 }
 
@@ -2827,7 +2833,7 @@
   string elem = tmp("_elem");
   t_field felem(((t_list*)tlist)->get_elem_type(), elem);
   felem.set_req(t_field::T_OPT_IN_REQ_OUT);
-  generate_deserialize_field(out, &felem, true, "", false, false, false, true);
+  generate_deserialize_field(out, &felem, true, "", false, false, false, true, true);
   indent(out) << prefix << " = append(" << prefix << ", " << elem << ")" << endl;
 }
 
