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();
+}
