diff --git a/lib/rb/lib/thrift/transport.rb b/lib/rb/lib/thrift/transport.rb
index d1792f7..d4c1b2b 100644
--- a/lib/rb/lib/thrift/transport.rb
+++ b/lib/rb/lib/thrift/transport.rb
@@ -50,6 +50,7 @@
     deprecate! :readAll => :read_all
   
     def write(buf); end
+    alias_method :<<, :write
 
     def flush; end
   end
@@ -182,8 +183,12 @@
   deprecate_class! :TFramedTransportFactory => FramedTransportFactory
 
   class MemoryBuffer < Transport
-    def initialize
-      @buf = ''
+    # If you pass a string to this, you should #dup that string
+    # unless you want it to be modified by #read and #write
+    #--
+    # yes this behavior is intentional
+    def initialize(buffer = nil)
+      @buf = buffer || ''
     end
 
     def open?
@@ -200,6 +205,7 @@
       not @buf.empty?
     end
 
+    # this method does not use the passed object directly but copies it
     def reset_buffer(new_buf = '')
       @buf.replace new_buf
     end
diff --git a/lib/rb/lib/thrift/transport/socket.rb b/lib/rb/lib/thrift/transport/socket.rb
index 5c1c4b1..37dda9b 100644
--- a/lib/rb/lib/thrift/transport/socket.rb
+++ b/lib/rb/lib/thrift/transport/socket.rb
@@ -17,9 +17,7 @@
       @handle = nil
     end
 
-    def set_handle(handle)
-      @handle = handle
-    end
+    attr_accessor :handle
 
     def open
       begin
@@ -66,6 +64,8 @@
       @handle = nil
     end
 
+    attr_reader :handle
+
     def listen
       @handle = TCPServer.new(nil, @port)
     end
@@ -74,7 +74,7 @@
       unless @handle.nil?
         sock = @handle.accept
         trans = Socket.new
-        trans.set_handle(sock)
+        trans.handle = sock
         trans
       end
     end
diff --git a/lib/rb/spec/socket_spec.rb b/lib/rb/spec/socket_spec.rb
index 5406453..b6e2a14 100644
--- a/lib/rb/spec/socket_spec.rb
+++ b/lib/rb/spec/socket_spec.rb
@@ -29,9 +29,9 @@
       TCPSocket.should_receive(:new).and_return(@handle)
       @socket.open
       @socket.should be_open
-      @socket.set_handle nil
+      @socket.handle = nil
       @socket.should_not be_open
-      @socket.set_handle @handle
+      @socket.handle = @handle
       @handle.should_receive(:close)
       @socket.close
       @socket.should_not be_open
@@ -85,8 +85,8 @@
     end
 
     it "should create a handle when calling listen" do
-      TCPServer.should_receive(:new).with(nil, 1234)
       @socket.listen
+      @socket.handle.should be_an_instance_of(TCPServer)
     end
 
     it "should create a Thrift::Socket to wrap accepted sockets" do
@@ -97,7 +97,7 @@
       handle.should_receive(:accept).and_return(sock)
       trans = mock("Socket")
       Socket.should_receive(:new).and_return(trans)
-      trans.should_receive(:set_handle).with(sock)
+      trans.should_receive(:handle=).with(sock)
       @socket.accept.should == trans
     end
 
diff --git a/lib/rb/spec/transport_spec.rb b/lib/rb/spec/transport_spec.rb
index 941df28..5d5c92f 100644
--- a/lib/rb/spec/transport_spec.rb
+++ b/lib/rb/spec/transport_spec.rb
@@ -26,6 +26,10 @@
         Transport.method_defined?(sym).should be_true
       end
     end
+
+    it "should alias << to write" do
+      Transport.instance_method(:<<).should == Transport.instance_method(:write)
+    end
   end
 
   describe ServerTransport do
@@ -208,6 +212,13 @@
       @buffer = MemoryBuffer.new
     end
 
+    it "should accept a buffer on input and use it directly" do
+      s = "this is a test"
+      @buffer = MemoryBuffer.new(s)
+      @buffer.read(4).should == "this"
+      s.should == " is a test"
+    end
+
     it "should always remain open" do
       @buffer.should be_open
       @buffer.close
@@ -235,6 +246,15 @@
       @buffer.available.should == 0
     end
 
+    it "should copy the given string whne resetting the buffer" do
+      s = "this is a test"
+      @buffer.reset_buffer(s)
+      @buffer.available.should == 14
+      @buffer.read(10)
+      @buffer.available.should == 4
+      s.should == "this is a test"
+    end
+
     it "should return from read what was given in write" do
       @buffer.write "test data"
       @buffer.read(4).should == "test"
