diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 782aa40..91c5b29 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -116,7 +116,7 @@
                                    bool read = true,
                                    bool write = true,
                                    bool swap = false,
-                                   bool stream = false);
+                                   bool is_user_struct = false);
   void generate_struct_definition(std::ofstream& out,
                                   std::ofstream& force_cpp_out,
                                   t_struct* tstruct,
@@ -368,6 +368,7 @@
            << endl
            << "#include <thrift/Thrift.h>" << endl
            << "#include <thrift/TApplicationException.h>" << endl
+           << "#include <thrift/TBase.h>" << endl
            << "#include <thrift/protocol/TProtocol.h>" << endl
            << "#include <thrift/transport/TTransport.h>" << endl
            << endl;
@@ -872,10 +873,14 @@
                                                   bool read,
                                                   bool write,
                                                   bool swap,
-                                                  bool stream) {
+                                                  bool is_user_struct) {
   string extends = "";
   if (is_exception) {
     extends = " : public ::apache::thrift::TException";
+  } else {
+    if (is_user_struct && !gen_templates_) {
+      extends = " : public virtual ::apache::thrift::TBase";
+    }
   }
 
   // Get members
@@ -1082,7 +1087,7 @@
   }
   out << endl;
 
-  if (stream) {
+  if (is_user_struct) {
     out << indent() << "virtual ";
     generate_struct_print_method_decl(out, NULL);
     out << ";" << endl;
@@ -1105,7 +1110,7 @@
         << " &b);" << endl << endl;
   }
 
-  if (stream) {
+  if (is_user_struct) {
     generate_struct_ostream_operator(out, tstruct);
   }
 }
diff --git a/lib/cpp/Makefile.am b/lib/cpp/Makefile.am
index 80e8917..dac840a 100755
--- a/lib/cpp/Makefile.am
+++ b/lib/cpp/Makefile.am
@@ -159,7 +159,8 @@
                          src/thrift/TApplicationException.h \
                          src/thrift/TLogging.h \
                          src/thrift/cxxfunctional.h \
-                         src/thrift/TToString.h
+                         src/thrift/TToString.h \
+                         src/thrift/TBase.h
 
 include_concurrencydir = $(include_thriftdir)/concurrency
 include_concurrency_HEADERS = \
diff --git a/lib/cpp/src/thrift/TBase.h b/lib/cpp/src/thrift/TBase.h
new file mode 100644
index 0000000..a274bcd
--- /dev/null
+++ b/lib/cpp/src/thrift/TBase.h
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef _THRIFT_TBASE_H_
+#define _THRIFT_TBASE_H_ 1
+
+#include <thrift/Thrift.h>
+#include <thrift/protocol/TProtocol.h>
+
+namespace apache {
+namespace thrift {
+
+class TBase {
+public:
+  virtual ~TBase(){};
+  virtual uint32_t read(protocol::TProtocol* iprot) = 0;
+  virtual uint32_t write(protocol::TProtocol* oprot) const = 0;
+};
+}
+} // apache::thrift
+
+#endif // #ifndef _THRIFT_TBASE_H_
