diff --git a/lib/rb/spec/socket_spec.rb b/lib/rb/spec/socket_spec.rb
index 4b6dae5..ed2f56a 100644
--- a/lib/rb/spec/socket_spec.rb
+++ b/lib/rb/spec/socket_spec.rb
@@ -1,81 +1,33 @@
 require File.dirname(__FILE__) + '/spec_helper'
+require File.dirname(__FILE__) + "/socket_spec_shared"
 
 class ThriftSocketSpec < Spec::ExampleGroup
   include Thrift
 
-  before(:each) do
-    @socket = Socket.new
-    @handle = mock("Handle", :closed? => false)
-    @handle.stub!(:close)
-  end
-
   describe Socket do
-    it "should open a TCPSocket" do
-      TCPSocket.should_receive(:new).with('localhost', 9090).and_return(@handle)
-      @socket.open.should == @handle
+    before(:each) do
+      @socket = Socket.new
+      @handle = mock("Handle", :closed? => false)
+      @handle.stub!(:close)
+      TCPSocket.stub!(:new).and_return(@handle)
+    end
+
+    it_should_behave_like "a socket"
+
+    it "should raise a TransportException when it cannot open a socket" do
+      TCPSocket.should_receive(:new).and_raise(StandardError)
+      lambda { @socket.open }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
+    end
+
+    it "should open a TCPSocket with default args" do
+      TCPSocket.should_receive(:new).with('localhost', 9090)
+      @socket.open
     end
 
     it "should accept host/port options" do
       TCPSocket.should_receive(:new).with('my.domain', 1234)
       Socket.new('my.domain', 1234).open
     end
-
-    it "should raise a TransportException when it cannot open a socket" do
-      TCPSocket.should_receive(:new).with('localhost', 9090).and_raise(StandardError)
-      lambda { @socket.open }.should raise_error(TransportException, "Could not connect to localhost:9090") { |e| e.type.should == TransportException::NOT_OPEN }
-    end
-
-    it "should be open whenever it has a handle" do
-      @socket.should_not be_open
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @socket.should be_open
-      @socket.handle = nil
-      @socket.should_not be_open
-      @socket.handle = @handle
-      @handle.should_receive(:close)
-      @socket.close
-      @socket.should_not be_open
-    end
-
-    it "should write data to the handle" do
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @handle.should_receive(:write).with("foobar")
-      @socket.write("foobar")
-      @handle.should_receive(:write).with("fail").and_raise(StandardError)
-      lambda { @socket.write("fail") }.should raise_error(TransportException) { |e| e.type.should == TransportException::NOT_OPEN }
-    end
-
-    it "should raise an error when it cannot read from the handle" do
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @handle.should_receive(:read).with(17).and_raise(StandardError)
-      lambda { @socket.read(17) }.should raise_error(TransportException) { |e| e.type.should == TransportException::NOT_OPEN }
-    end
-
-    it "should raise an error when it reads no data from the handle" do
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @handle.should_receive(:read).with(17).and_return("")
-      lambda { @socket.read(17) }.should raise_error(TransportException, "Socket: Could not read 17 bytes from localhost:9090")
-    end
-
-    it "should return the data read when reading from the handle works" do
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @handle.should_receive(:read).with(17).and_return("test data")
-      @socket.read(17).should == "test data"
-    end
-
-    it "should declare itself as closed when it has an error" do
-      TCPSocket.should_receive(:new).and_return(@handle)
-      @socket.open
-      @handle.should_receive(:write).with("fail").and_raise(StandardError)
-      @socket.should be_open
-      lambda { @socket.write("fail") }.should raise_error
-      @socket.should_not be_open
-    end
   end
 
   describe ServerSocket do
@@ -84,8 +36,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 accept an optional host argument" do
diff --git a/lib/rb/spec/socket_spec_shared.rb b/lib/rb/spec/socket_spec_shared.rb
new file mode 100644
index 0000000..448a516
--- /dev/null
+++ b/lib/rb/spec/socket_spec_shared.rb
@@ -0,0 +1,52 @@
+require File.dirname(__FILE__) + '/spec_helper'
+
+shared_examples_for "a socket" do
+  it "should open a socket" do
+    @socket.open.should == @handle
+  end
+
+  it "should be open whenever it has a handle" do
+    @socket.should_not be_open
+    @socket.open
+    @socket.should be_open
+    @socket.handle = nil
+    @socket.should_not be_open
+    @socket.handle = @handle
+    @socket.close
+    @socket.should_not be_open
+  end
+
+  it "should write data to the handle" do
+    @socket.open
+    @handle.should_receive(:write).with("foobar")
+    @socket.write("foobar")
+    @handle.should_receive(:write).with("fail").and_raise(StandardError)
+    lambda { @socket.write("fail") }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
+  end
+
+  it "should raise an error when it cannot read from the handle" do
+    @socket.open
+    @handle.should_receive(:read).with(17).and_raise(StandardError)
+    lambda { @socket.read(17) }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
+  end
+
+  it "should raise an error when it reads no data from the handle" do
+    @socket.open
+    @handle.should_receive(:read).with(17).and_return("")
+    lambda { @socket.read(17) }.should raise_error(Thrift::TransportException, "Socket: Could not read 17 bytes from #{@socket.instance_variable_get("@desc")}")
+  end
+
+  it "should return the data read when reading from the handle works" do
+    @socket.open
+    @handle.should_receive(:read).with(17).and_return("test data")
+    @socket.read(17).should == "test data"
+  end
+
+  it "should declare itself as closed when it has an error" do
+    @socket.open
+    @handle.should_receive(:write).with("fail").and_raise(StandardError)
+    @socket.should be_open
+    lambda { @socket.write("fail") }.should raise_error
+    @socket.should_not be_open
+  end
+end
diff --git a/lib/rb/spec/unixsocket_spec.rb b/lib/rb/spec/unixsocket_spec.rb
new file mode 100644
index 0000000..777ef04
--- /dev/null
+++ b/lib/rb/spec/unixsocket_spec.rb
@@ -0,0 +1,60 @@
+require File.dirname(__FILE__) + '/spec_helper'
+require 'thrift/transport/unixsocket'
+require File.dirname(__FILE__) + "/socket_spec_shared"
+
+class ThriftUNIXSocketSpec < Spec::ExampleGroup
+  include Thrift
+
+  describe UNIXSocket do
+    before(:each) do
+      @path = '/tmp/thrift_spec_socket'
+      @socket = UNIXSocket.new(@path)
+      @handle = mock("Handle", :closed? => false)
+      @handle.stub!(:close)
+      ::UNIXSocket.stub!(:new).and_return(@handle)
+    end
+
+    it_should_behave_like "a socket"
+
+    it "should raise a TransportException when it cannot open a socket" do
+      ::UNIXSocket.should_receive(:new).and_raise(StandardError)
+      lambda { @socket.open }.should raise_error(Thrift::TransportException) { |e| e.type.should == Thrift::TransportException::NOT_OPEN }
+    end
+  end
+
+  describe UNIXServerSocket do
+    before(:each) do
+      @path = '/tmp/thrift_spec_socket'
+      @socket = UNIXServerSocket.new(@path)
+    end
+
+    it "should create a handle when calling listen" do
+      UNIXServer.should_receive(:new).with(@path)
+      @socket.listen
+    end
+
+    it "should create a Thrift::UNIXSocket to wrap accepted sockets" do
+      handle = mock("UNIXServer")
+      UNIXServer.should_receive(:new).with(@path).and_return(handle)
+      @socket.listen
+      sock = mock("sock")
+      handle.should_receive(:accept).and_return(sock)
+      trans = mock("UNIXSocket")
+      UNIXSocket.should_receive(:new).and_return(trans)
+      trans.should_receive(:handle=).with(sock)
+      @socket.accept.should == trans
+    end
+
+    it "should close the handle when closed" do
+      handle = mock("UNIXServer", :closed? => false)
+      UNIXServer.should_receive(:new).with(@path).and_return(handle)
+      @socket.listen
+      handle.should_receive(:close)
+      @socket.close
+    end
+
+    it "should return nil when accepting if there is no handle" do
+      @socket.accept.should be_nil
+    end
+  end
+end
