diff --git a/compiler/cpp/src/parse/t_struct.h b/compiler/cpp/src/parse/t_struct.h
index 05cd216..39da110 100644
--- a/compiler/cpp/src/parse/t_struct.h
+++ b/compiler/cpp/src/parse/t_struct.h
@@ -9,7 +9,6 @@
 
 #include <vector>
 #include <string>
-#include <cstring>
 
 #include "t_type.h"
 #include "t_field.h"
@@ -28,18 +27,12 @@
   t_struct(t_program* program) :
     t_type(program),
     is_xception_(false),
-    xsd_all_(false)
-  {
-    memset(fingerprint_, 0, sizeof(fingerprint_));
-  }
+    xsd_all_(false) {}
 
   t_struct(t_program* program, const std::string& name) :
     t_type(program, name),
     is_xception_(false),
-    xsd_all_(false)
-  {
-    memset(fingerprint_, 0, sizeof(fingerprint_));
-  }
+    xsd_all_(false) {}
 
   void set_name(const std::string& name) {
     name_ = name;
diff --git a/compiler/cpp/src/parse/t_type.h b/compiler/cpp/src/parse/t_type.h
index 61975d5..3144356 100644
--- a/compiler/cpp/src/parse/t_type.h
+++ b/compiler/cpp/src/parse/t_type.h
@@ -8,6 +8,7 @@
 #define T_TYPE_H
 
 #include <string>
+#include <cstring>
 #include "t_doc.h"
 
 // What's worse?  This, or making a src/parse/non_inlined.cc?
@@ -114,17 +115,28 @@
 
 
  protected:
-  t_type() {}
+  t_type() {
+    memset(fingerprint_, 0, sizeof(fingerprint_));
+  }
 
   t_type(t_program* program) :
-    program_(program) {}
+    program_(program)
+  {
+    memset(fingerprint_, 0, sizeof(fingerprint_));
+  }
 
   t_type(t_program* program, std::string name) :
     program_(program),
-    name_(name) {}
+    name_(name)
+  {
+    memset(fingerprint_, 0, sizeof(fingerprint_));
+  }
 
   t_type(std::string name) :
-    name_(name) {}
+    name_(name)
+  {
+    memset(fingerprint_, 0, sizeof(fingerprint_));
+  }
 
   t_program* program_;
   std::string name_;
diff --git a/compiler/cpp/src/parse/t_typedef.h b/compiler/cpp/src/parse/t_typedef.h
index 341a6ff..f2c9713 100644
--- a/compiler/cpp/src/parse/t_typedef.h
+++ b/compiler/cpp/src/parse/t_typedef.h
@@ -43,6 +43,13 @@
     return type_->get_fingerprint_material();
   }
 
+  virtual void generate_fingerprint() {
+    t_type::generate_fingerprint();
+    if (!type_->has_fingerprint()) {
+      type_->generate_fingerprint();
+    }
+  }
+
  private:
   t_type* type_;
   std::string symbolic_;
