diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 99190b7..1bbb2ed 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -326,7 +326,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     render << "(" << type_name(type) << ")" << value->get_integer();
@@ -2000,7 +2000,7 @@
       out << "readDouble(" << name << ");";
       break;
     default:
-      throw "compiler error: no C++ reader for base type " + tbase + name;
+      throw "compiler error: no C++ reader for base type " + t_base_type::t_base_name(tbase) + name;
     }
     out <<
       endl;
@@ -2208,7 +2208,7 @@
         out << "writeDouble(" << name << ");";
         break;
       default:
-        throw "compiler error: no C++ writer for base type " + tbase + name;
+        throw "compiler error: no C++ writer for base type " + t_base_type::t_base_name(tbase) + name;
       }
     } else if (type->is_enum()) {
       out << "writeI32((int32_t)" << name << ");";
@@ -2489,7 +2489,7 @@
   case t_base_type::TYPE_DOUBLE:
     return "double";
   default:
-    throw "compiler error: no C++ base type name for base type " + tbase;
+    throw "compiler error: no C++ base type name for base type " + t_base_type::t_base_name(tbase);
   }
 }
 
@@ -2534,7 +2534,7 @@
         result += " = (double)0";
         break;
       default:
-        throw "compiler error: no C++ initializer for base type " + tbase;
+        throw "compiler error: no C++ initializer for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       result += " = (" + type_name(type) + ")0";
diff --git a/compiler/cpp/src/generate/t_erl_generator.cc b/compiler/cpp/src/generate/t_erl_generator.cc
index 36a37a6..e3909bd 100644
--- a/compiler/cpp/src/generate/t_erl_generator.cc
+++ b/compiler/cpp/src/generate/t_erl_generator.cc
@@ -201,7 +201,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     indent(out) << value->get_integer();
@@ -1107,7 +1107,7 @@
         out << "readDouble";
         break;
       default:
-        throw "compiler error: no PHP name for base type " + tbase;
+        throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "readI32";
@@ -1317,7 +1317,7 @@
         out << "writeDouble, " << name << "),";
         break;
       default:
-        throw "compiler error: no PHP name for base type " + tbase;
+        throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "writeI32, " << name << "),";
diff --git a/compiler/cpp/src/generate/t_hs_generator.cc b/compiler/cpp/src/generate/t_hs_generator.cc
index 614ebe7..920b453 100644
--- a/compiler/cpp/src/generate/t_hs_generator.cc
+++ b/compiler/cpp/src/generate/t_hs_generator.cc
@@ -236,7 +236,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     t_enum* tenum = (t_enum*)type;
@@ -1001,7 +1001,7 @@
       out << "readDouble";
       break;
     default:
-      throw "compiler error: no PHP name for base type " + tbase;
+      throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
     }
     out << " iprot";
   } else if (type->is_enum()) {
@@ -1119,7 +1119,7 @@
         out << "writeDouble oprot " << name;
         break;
       default:
-        throw "compiler error: no hs name for base type " + tbase;
+        throw "compiler error: no hs name for base type " + t_base_type::t_base_name(tbase);
       }
     
     } else if (type->is_enum()) {
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index d4d8fbf..808d7ec 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -281,7 +281,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     render << value->get_integer();
@@ -1245,7 +1245,7 @@
         out << "readDouble();";
         break;
       default:
-        throw "compiler error: no Java name for base type " + tbase;
+        throw "compiler error: no Java name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "readI32();";
@@ -1460,7 +1460,7 @@
         out << "writeDouble(" << name << ");";
         break;
       default:
-        throw "compiler error: no Java name for base type " + tbase;
+        throw "compiler error: no Java name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "writeI32(" << name << ");";
@@ -1674,7 +1674,7 @@
   case t_base_type::TYPE_DOUBLE:
     return (in_container ? "Double" : "double");
   default:
-    throw "compiler error: no C++ name for base type " + tbase;
+    throw "compiler error: no C++ name for base type " + t_base_type::t_base_name(tbase);
   }
 }
 
diff --git a/compiler/cpp/src/generate/t_ocaml_generator.cc b/compiler/cpp/src/generate/t_ocaml_generator.cc
index 5d51996..0a5f97b 100644
--- a/compiler/cpp/src/generate/t_ocaml_generator.cc
+++ b/compiler/cpp/src/generate/t_ocaml_generator.cc
@@ -239,7 +239,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     t_enum* tenum = (t_enum*)type;
@@ -1086,7 +1086,7 @@
       out << "readDouble";
       break;
     default:
-      throw "compiler error: no PHP name for base type " + tbase;
+      throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     string ename = capitalize(type->get_name());
@@ -1238,7 +1238,7 @@
         out << "writeDouble(" << name << ")";
         break;
       default:
-        throw "compiler error: no ocaml name for base type " + tbase;
+        throw "compiler error: no ocaml name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       string ename = capitalize(type->get_name());
diff --git a/compiler/cpp/src/generate/t_perl_generator.cc b/compiler/cpp/src/generate/t_perl_generator.cc
index 1474deb..ed3fab7 100644
--- a/compiler/cpp/src/generate/t_perl_generator.cc
+++ b/compiler/cpp/src/generate/t_perl_generator.cc
@@ -146,7 +146,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     out << value->get_integer();
@@ -1078,7 +1078,7 @@
         out << "readDouble(\\$" << name << ");";
         break;
       default:
-        throw "compiler error: no PERL name for base type " + tbase;
+        throw "compiler error: no PERL name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "readI32(\\$" << name << ");";
@@ -1303,7 +1303,7 @@
         out << "writeDouble($" << name << ");";
         break;
       default:
-        throw "compiler error: no PERL name for base type " + tbase;
+        throw "compiler error: no PERL name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "writeI32($" << name << ");";
@@ -1471,7 +1471,7 @@
         result += " = 0.0";
         break;
       default:
-        throw "compiler error: no PERL initializer for base type " + tbase;
+        throw "compiler error: no PERL initializer for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       result += " = 0";
diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc
index 1596a3b..f78a7dc 100644
--- a/compiler/cpp/src/generate/t_php_generator.cc
+++ b/compiler/cpp/src/generate/t_php_generator.cc
@@ -180,7 +180,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     indent(out) << value->get_integer();
@@ -1220,7 +1220,7 @@
             indent() << "$" << name << " = $arr[1];" << endl;
           break;
         default:
-          throw "compiler error: no PHP name for base type " + tbase + tfield->get_name();
+          throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase) + tfield->get_name();
         }
       } else if (type->is_enum()) {
           out <<
@@ -1265,7 +1265,7 @@
           out << "readDouble($" << name << ");";
           break;
         default:
-          throw "compiler error: no PHP name for base type " + tbase;
+          throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
         }
       } else if (type->is_enum()) {
         out << "readI32($" << name << ");";
@@ -1502,7 +1502,7 @@
             indent() << "$output .= strrev(pack('d', $" << name << "));" << endl;
           break;
         default:
-          throw "compiler error: no PHP name for base type " + tbase;
+          throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
         }
       } else if (type->is_enum()) {
         out <<
@@ -1542,7 +1542,7 @@
           out << "writeDouble($" << name << ");";
           break;
         default:
-          throw "compiler error: no PHP name for base type " + tbase;
+          throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
         }
       } else if (type->is_enum()) {
         out << "writeI32($" << name << ");";
@@ -1727,7 +1727,7 @@
         result += " = 0.0";
         break;
       default:
-        throw "compiler error: no PHP initializer for base type " + tbase;
+        throw "compiler error: no PHP initializer for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       result += " = 0";
diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc
index 5ed2567..256029e 100644
--- a/compiler/cpp/src/generate/t_py_generator.cc
+++ b/compiler/cpp/src/generate/t_py_generator.cc
@@ -184,7 +184,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     indent(out) << value->get_integer();
@@ -1230,7 +1230,7 @@
         out << "readDouble();";
         break;
       default:
-        throw "compiler error: no PHP name for base type " + tbase;
+        throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "readI32();";
@@ -1424,7 +1424,7 @@
         out << "writeDouble(" << name << ")";
         break;
       default:
-        throw "compiler error: no PHP name for base type " + tbase;
+        throw "compiler error: no PHP name for base type " + t_base_type::t_base_name(tbase);
       }
     } else if (type->is_enum()) {
       out << "writeI32(" << name << ")";
diff --git a/compiler/cpp/src/generate/t_rb_generator.cc b/compiler/cpp/src/generate/t_rb_generator.cc
index a3f002f..a15b9ce 100644
--- a/compiler/cpp/src/generate/t_rb_generator.cc
+++ b/compiler/cpp/src/generate/t_rb_generator.cc
@@ -176,7 +176,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
     }
   } else if (type->is_enum()) {
     indent(out) << value->get_integer();
diff --git a/compiler/cpp/src/generate/t_xsd_generator.cc b/compiler/cpp/src/generate/t_xsd_generator.cc
index 3a0ca1c..3f0b8f9 100644
--- a/compiler/cpp/src/generate/t_xsd_generator.cc
+++ b/compiler/cpp/src/generate/t_xsd_generator.cc
@@ -265,6 +265,6 @@
   case t_base_type::TYPE_DOUBLE:
     return "decimal";
   default:
-    throw "compiler error: no C++ base type name for base type " + tbase;
+    throw "compiler error: no C++ base type name for base type " + t_base_type::t_base_name(tbase);
   }
 }
diff --git a/compiler/cpp/src/main.cc b/compiler/cpp/src/main.cc
index 7e561e1..b070b3b 100644
--- a/compiler/cpp/src/main.cc
+++ b/compiler/cpp/src/main.cc
@@ -614,7 +614,7 @@
       }
       break;
     default:
-      throw "compiler error: no const of base type " + tbase + name;
+      throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase) + name;
     }
   } else if (type->is_enum()) {
     if (value->get_type() != t_const_value::CV_INTEGER) {
diff --git a/compiler/cpp/src/parse/t_base_type.h b/compiler/cpp/src/parse/t_base_type.h
index c08c449..1c69c2e 100644
--- a/compiler/cpp/src/parse/t_base_type.h
+++ b/compiler/cpp/src/parse/t_base_type.h
@@ -87,17 +87,24 @@
   }
 
   virtual std::string get_fingerprint_material() const {
-    switch (base_) {
-      case TYPE_VOID   : return   "void"; break;
-      case TYPE_STRING : return "string"; break;
-      case TYPE_BOOL   : return   "bool"; break;
-      case TYPE_BYTE   : return   "byte"; break;
-      case TYPE_I16    : return    "i16"; break;
-      case TYPE_I32    : return    "i32"; break;
-      case TYPE_I64    : return    "164"; break;
-      case TYPE_DOUBLE : return "double"; break;
-      default:
-        throw "BUG: Can't get fingerprint material for this base type.";
+    std::string rv = t_base_name(base_);
+    if (rv == "(unknown)") {
+      throw "BUG: Can't get fingerprint material for this base type.";
+    }
+    return rv;
+  }
+
+  static std::string t_base_name(t_base tbase) {
+    switch (tbase) {
+      case TYPE_VOID   : return      "void"; break;
+      case TYPE_STRING : return    "string"; break;
+      case TYPE_BOOL   : return      "bool"; break;
+      case TYPE_BYTE   : return      "byte"; break;
+      case TYPE_I16    : return       "i16"; break;
+      case TYPE_I32    : return       "i32"; break;
+      case TYPE_I64    : return       "164"; break;
+      case TYPE_DOUBLE : return    "double"; break;
+      default          : return "(unknown)"; break;
     }
   }
 
