diff --git a/.gitignore b/.gitignore
index bcbbd6f..957dc9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -138,6 +138,7 @@
 /lib/c_glib/test/testthrifttest
 /lib/c_glib/test/testthrifttestclient
 /lib/c_glib/test/testtransportsocket
+/lib/c_glib/test/testserialization
 /lib/c_glib/thriftc.pc
 /lib/c_glib/thrift_c_glib.pc
 /lib/csharp/**/bin/
diff --git a/compiler/cpp/src/generate/t_c_glib_generator.cc b/compiler/cpp/src/generate/t_c_glib_generator.cc
index 6ca6a5e..e6b48a4 100644
--- a/compiler/cpp/src/generate/t_c_glib_generator.cc
+++ b/compiler/cpp/src/generate/t_c_glib_generator.cc
@@ -3699,7 +3699,10 @@
     } else if (type->is_enum()) {
       out << "i32 (protocol, (gint32) " << name;
     }
-    out << ", error)) < 0)" << endl << indent() << "  return " << error_ret << ";" << endl;
+    out << ", error)) < 0)" << endl
+        << indent() << "  return " << error_ret << ";" << endl
+        << indent() << "xfer += ret;" << endl
+        << endl;
   } else {
     printf("DO NOT KNOW HOW TO SERIALIZE FIELD '%s' TYPE '%s'\n",
            name.c_str(),
diff --git a/lib/c_glib/test/CMakeLists.txt b/lib/c_glib/test/CMakeLists.txt
index bd5d1ee..61dc490 100644
--- a/lib/c_glib/test/CMakeLists.txt
+++ b/lib/c_glib/test/CMakeLists.txt
@@ -53,6 +53,10 @@
 target_link_libraries(testgenc thrift_c_glib)
 
 
+add_executable(testserialization testserialization.c)
+target_link_libraries(testserialization testgenc thrift_c_glib)
+add_test(NAME testserialization COMMAND testserialization)
+
 add_executable(testapplicationexception testapplicationexception.c)
 target_link_libraries(testapplicationexception thrift_c_glib)
 add_test(NAME testapplicationexception COMMAND testapplicationexception)
diff --git a/lib/c_glib/test/Makefile.am b/lib/c_glib/test/Makefile.am
index 7319743..555380c 100755
--- a/lib/c_glib/test/Makefile.am
+++ b/lib/c_glib/test/Makefile.am
@@ -43,6 +43,7 @@
 AM_LDFLAGS = $(GLIB_LIBS) $(GOBJECT_LIBS) @GCOV_LDFLAGS@
 
 check_PROGRAMS = \
+  testserialization \
   testapplicationexception \
   testcontainertest \
   testtransportsocket \
@@ -61,6 +62,12 @@
   check_PROGRAMS += testthrifttestclient
 endif
 
+testserialization_SOURCES = testserialization.c
+testserialization_LDADD = \
+    $(top_builddir)/lib/c_glib/src/thrift/c_glib/protocol/libthrift_c_glib_la-thrift_protocol.o \
+    $(top_builddir)/lib/c_glib/src/thrift/c_glib/transport/libthrift_c_glib_la-thrift_transport.o \
+    libtestgenc.la
+
 testapplicationexception_SOURCES = testapplicationexception.c
 testapplicationexception_LDADD = \
     $(top_builddir)/lib/c_glib/src/thrift/c_glib/libthrift_c_glib_la-thrift_application_exception.o \
diff --git a/lib/c_glib/test/testserialization.c b/lib/c_glib/test/testserialization.c
new file mode 100644
index 0000000..0ece2ad
--- /dev/null
+++ b/lib/c_glib/test/testserialization.c
@@ -0,0 +1,40 @@
+#include <thrift/c_glib/protocol/thrift_binary_protocol.h>
+#include <thrift/c_glib/protocol/thrift_protocol.h>
+#include <thrift/c_glib/transport/thrift_memory_buffer.h>
+#include <thrift/c_glib/transport/thrift_transport.h>
+#include "gen-c_glib/t_test_debug_proto_test_types.h"
+
+static void struct_read_write_length_should_equal() {
+  GError* error = NULL;
+  ThriftTransport* transport
+      = THRIFT_TRANSPORT(g_object_new(THRIFT_TYPE_MEMORY_BUFFER, "buf_size", 2048, NULL));
+  ThriftProtocol* protocol
+      = THRIFT_PROTOCOL(g_object_new(THRIFT_TYPE_BINARY_PROTOCOL, "transport", transport, NULL));
+  TTestBonk* src = g_object_new(T_TEST_TYPE_BONK, NULL);
+  TTestBonk* dst = g_object_new(T_TEST_TYPE_BONK, NULL);
+  TTestBonkClass* cls = T_TEST_BONK_GET_CLASS(src);
+
+  int write_len = THRIFT_STRUCT_CLASS(cls)->write(THRIFT_STRUCT(src), protocol, &error);
+  g_assert(!error);
+  g_assert(write_len > 0);
+
+  int read_len = THRIFT_STRUCT_CLASS(cls)->read(THRIFT_STRUCT(dst), protocol, &error);
+  g_assert(!error);
+  g_assert_cmpint(write_len, ==, read_len);
+
+  g_object_unref(dst);
+  g_object_unref(src);
+  g_object_unref(protocol);
+  g_object_unref(transport);
+}
+
+int main(int argc, char* argv[]) {
+#if (!GLIB_CHECK_VERSION(2, 36, 0))
+  g_type_init();
+#endif
+  g_test_init(&argc, &argv, NULL);
+
+  g_test_add_func("/testserialization/StructReadWriteLengthShouldEqual",
+                  struct_read_write_length_should_equal);
+  return g_test_run();
+}
