diff --git a/compiler/cpp/src/generate/t_c_glib_generator.cc b/compiler/cpp/src/generate/t_c_glib_generator.cc
index 050463f..632dbc7 100644
--- a/compiler/cpp/src/generate/t_c_glib_generator.cc
+++ b/compiler/cpp/src/generate/t_c_glib_generator.cc
@@ -2973,6 +2973,8 @@
     string tval_name = type_name (tval);
     string tkey_ptr = tkey->is_string() || !tkey->is_base_type() ? "" : "*";
     string tval_ptr = tval->is_string() || !tval->is_base_type() ? "" : "*";
+    string keyname = tmp("key");
+    string valname = tmp("val");
 
     /*
      * Some ugliness here.  To maximize backwards compatibility, we
@@ -2988,9 +2990,10 @@
       indent() << "  return " << error_ret << ";" << endl <<
       indent() << "xfer += ret;" << endl <<
       endl <<
-      indent() << "GList *key_list = NULL, *iter = NULL;" << endl <<
-      indent() << tkey_name << tkey_ptr << " key;" << endl <<
-      indent() << tval_name << tval_ptr << " value;" << endl <<
+      indent() << "GList *key_list = NULL, *iter = NULL;" << endl;
+    declare_local_variable(out, tkey, keyname);
+    declare_local_variable(out, tval, valname);
+    out <<
       indent() << "g_hash_table_foreach ((GHashTable *) " << prefix << 
                    ", thrift_hash_table_get_keys, &key_list);" << endl <<
       indent() << tkey_name << tkey_ptr <<
@@ -3009,13 +3012,16 @@
 
     scope_up(out);
     out <<
-      indent() << "key = keys[i];" << endl <<
-      indent() << "value = (" << tval_name << tval_ptr <<
+      indent() << keyname << " = keys[i];" << endl <<
+      indent() << valname << " = (" << tval_name << tval_ptr <<
                    ") g_hash_table_lookup (((GHashTable *) " << prefix <<
-                   "), (gpointer) key);" << endl <<
+                   "), (gpointer) " << keyname << ");" << endl <<
       endl;
-    generate_serialize_map_element (out, (t_map *) ttype, tkey_ptr + " key",
-                                    tval_ptr + " value", error_ret);
+    generate_serialize_map_element (out,
+                                    (t_map *) ttype,
+                                    tkey_ptr + " " + keyname,
+                                    tval_ptr + " " + valname,
+                                    error_ret);
     scope_down(out);
 
     out <<
