diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc
index 6e6a115..3f9b858 100644
--- a/compiler/cpp/src/generate/t_go_generator.cc
+++ b/compiler/cpp/src/generate/t_go_generator.cc
@@ -1512,10 +1512,11 @@
 
     // if negative id, ensure we generate a valid method name
     string field_method_prefix("ReadField");
+    int32_t field_method_suffix = field_id;
 
-    if (field_id < 0) {
+    if (field_method_suffix < 0) {
       field_method_prefix += "_";
-      field_id *= -1;
+      field_method_suffix *= -1;
     }
 
     out << indent() << "case " << field_id << ":" << endl;
@@ -1526,7 +1527,7 @@
       thriftFieldTypeId = "thrift.STRING";
     }
 
-    out << indent() << "if err := p." << field_method_prefix << field_id << "(iprot); err != nil {"
+    out << indent() << "if err := p." << field_method_prefix << field_method_suffix << "(iprot); err != nil {"
         << endl;
     out << indent() << "  return err" << endl;
     out << indent() << "}" << endl;
@@ -1588,13 +1589,14 @@
     string field_name(publicize((*f_iter)->get_name()));
     string field_method_prefix("ReadField");
     int32_t field_id = (*f_iter)->get_key();
+    int32_t field_method_suffix = field_id;
 
-    if (field_id < 0) {
+    if (field_method_suffix < 0) {
       field_method_prefix += "_";
-      field_id *= -1;
+      field_method_suffix *= -1;
     }
 
-    out << indent() << "func (p *" << tstruct_name << ")  " << field_method_prefix << field_id
+    out << indent() << "func (p *" << tstruct_name << ")  " << field_method_prefix << field_method_suffix
         << "(iprot thrift.TProtocol) error {" << endl;
     indent_up();
     generate_deserialize_field(out, *f_iter, false, "p.");
@@ -1637,13 +1639,14 @@
     field_name = (*f_iter)->get_name();
     escape_field_name = escape_string(field_name);
     field_id = (*f_iter)->get_key();
+    int32_t field_method_suffix = field_id;
 
-    if (field_id < 0) {
+    if (field_method_suffix < 0) {
       field_method_prefix += "_";
-      field_id *= -1;
+      field_method_suffix *= -1;
     }
 
-    out << indent() << "if err := p." << field_method_prefix << field_id
+    out << indent() << "if err := p." << field_method_prefix << field_method_suffix
         << "(oprot); err != nil { return err }" << endl;
   }
 
@@ -1663,13 +1666,14 @@
     escape_field_name = escape_string(field_name);
     // field_default_value = (*f_iter)->get_value();
     field_required = (*f_iter)->get_req();
+    int32_t field_method_suffix = field_id;
 
-    if (field_id < 0) {
+    if (field_method_suffix < 0) {
       field_method_prefix += "_";
-      field_id *= -1;
+      field_method_suffix *= -1;
     }
 
-    out << indent() << "func (p *" << tstruct_name << ") " << field_method_prefix << field_id
+    out << indent() << "func (p *" << tstruct_name << ") " << field_method_prefix << field_method_suffix
         << "(oprot thrift.TProtocol) (err error) {" << endl;
     indent_up();
 
