diff --git a/test/erl/src/test_membuffer.erl b/test/erl/src/test_membuffer.erl
index 19ac527..fcf993a 100644
--- a/test/erl/src/test_membuffer.erl
+++ b/test/erl/src/test_membuffer.erl
@@ -23,74 +23,98 @@
 -include("thriftTest_types.hrl").
 
 test_data() ->
-    #xtruct{string_thing = <<"foobar">>,
-	    byte_thing = 123,
-	    i32_thing = 1234567,
-	    i64_thing = 12345678900}.
+  #xtruct {
+    string_thing = <<"foobar">>,
+    byte_thing = 123,
+    i32_thing = 1234567,
+    i64_thing = 12345678900
+  }.
 
 t1() ->
-    {ok, Transport} = thrift_memory_buffer:new(),
-    {ok, Protocol0} = thrift_binary_protocol:new(Transport),
-    TestData = test_data(),
-		{Protocol1, ok} = thrift_protocol:write(Protocol0,
-			       {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
-				TestData}),
-		{_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
-					{struct, element(2, thriftTest_types:struct_info('xtruct'))},
-					'xtruct'),
-
-    Result = TestData.
+  {ok, Transport} = thrift_memory_buffer:new(),
+  {ok, Protocol0} = thrift_binary_protocol:new(Transport),
+  TestData = test_data(),
+  {Protocol1, ok} = thrift_protocol:write(Protocol0,
+    {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
+      TestData}),
+  {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
+    {struct, element(2, thriftTest_types:struct_info('xtruct'))},
+    'xtruct'),
+  Result = TestData.
 
 
 t2() ->
-    {ok, Transport} = thrift_memory_buffer:new(),
-    {ok, Protocol0} = thrift_binary_protocol:new(Transport),
-    TestData = test_data(),
-		{Protocol1, ok} = thrift_protocol:write(Protocol0,
-			       {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
-				TestData}),
-		{_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
-					{struct, element(2, thriftTest_types:struct_info('xtruct3'))},
-					'xtruct3'),
+  {ok, Transport} = thrift_memory_buffer:new(),
+  {ok, Protocol0} = thrift_binary_protocol:new(Transport),
+  TestData = test_data(),
+  {Protocol1, ok} = thrift_protocol:write(Protocol0,
+    {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
+      TestData}),
+  {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
+    {struct, element(2, thriftTest_types:struct_info('xtruct3'))},
+    'xtruct3'),
 
-    Result = #xtruct3{string_thing = TestData#xtruct.string_thing,
-                      changed = undefined,
-                      i32_thing = TestData#xtruct.i32_thing,
-                      i64_thing = TestData#xtruct.i64_thing}.
+  Result = #xtruct3{string_thing = TestData#xtruct.string_thing,
+    changed = undefined,
+    i32_thing = TestData#xtruct.i32_thing,
+    i64_thing = TestData#xtruct.i64_thing}.
 
 
 t3() ->
-    {ok, Transport} = thrift_memory_buffer:new(),
-    {ok, Protocol0} = thrift_binary_protocol:new(Transport),
-    TestData = #bools{im_true = true, im_false = false},
-		{Protocol1, ok} = thrift_protocol:write(Protocol0,
-			       {{struct, element(2, thriftTest_types:struct_info('bools'))},
-				TestData}),
-		{_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
-					{struct, element(2, thriftTest_types:struct_info('bools'))},
-					'bools'),
+  {ok, Transport} = thrift_memory_buffer:new(),
+  {ok, Protocol0} = thrift_binary_protocol:new(Transport),
+  TestData = #bools{im_true = true, im_false = false},
+  {Protocol1, ok} = thrift_protocol:write(Protocol0,
+    {{struct, element(2, thriftTest_types:struct_info('bools'))},
+      TestData}),
+  {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
+    {struct, element(2, thriftTest_types:struct_info('bools'))},
+    'bools'),
 
-    true = TestData#bools.im_true  =:= Result#bools.im_true,
-    true = TestData#bools.im_false =:= Result#bools.im_false.
+  true = TestData#bools.im_true  =:= Result#bools.im_true,
+  true = TestData#bools.im_false =:= Result#bools.im_false.
 
 
 t4() ->
-    {ok, Transport} = thrift_memory_buffer:new(),
-    {ok, Protocol0} = thrift_binary_protocol:new(Transport),
-    TestData = #insanity{xtructs=[]},
-		{Protocol1, ok} = thrift_protocol:write(Protocol0,
-			       {{struct, element(2, thriftTest_types:struct_info('insanity'))},
-				TestData}),
-		{_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
-					{struct, element(2, thriftTest_types:struct_info('insanity'))},
-					'insanity'),
+  {ok, Transport} = thrift_memory_buffer:new(),
+  {ok, Protocol0} = thrift_binary_protocol:new(Transport),
+  TestData = #insanity{xtructs=[]},
+  {Protocol1, ok} = thrift_protocol:write(Protocol0,
+    {{struct, element(2, thriftTest_types:struct_info('insanity'))},
+      TestData}),
+  {_Protocol2, {ok, Result}} = thrift_protocol:read(Protocol1,
+    {struct, element(2, thriftTest_types:struct_info('insanity'))},
+    'insanity'),
 
-    TestData = Result.
+  TestData = Result.
 
+t5() ->
+  % test writing to a buffer, getting the bytes out, putting them
+  % in a new buffer and reading them
+
+  % here's the writing part
+  {ok, Transport0} = thrift_memory_buffer:new(),
+  {ok, Protocol0} = thrift_binary_protocol:new(Transport0),
+  TestData = test_data(),
+  {Protocol1, ok} = thrift_protocol:write(Protocol0,
+    {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
+      TestData}),
+  % flush now returns the buffer
+  {_Protocol2, Buf} = thrift_protocol:flush_transport (Protocol1),
+
+  % now the reading part
+  {ok, T2} = thrift_memory_buffer:new (Buf),
+  {ok, P2} = thrift_binary_protocol:new(T2),
+  {_, {ok, Result}} = thrift_protocol:read(P2,
+    {struct, element(2, thriftTest_types:struct_info('xtruct'))},
+    'xtruct'),
+
+  Result = TestData.
 
 t() ->
-    t1(),
-    t2(),
-    t3(),
-    t4().
+  t1(),
+  t2(),
+  t3(),
+  t4(),
+  t5().
 
