diff --git a/lib/rb/lib/thrift/protocol/binary_protocol.rb b/lib/rb/lib/thrift/protocol/binary_protocol.rb
index d8279db..ce5d0d7 100644
--- a/lib/rb/lib/thrift/protocol/binary_protocol.rb
+++ b/lib/rb/lib/thrift/protocol/binary_protocol.rb
@@ -82,20 +82,24 @@
     end
 
     def write_byte(byte)
+      raise 'nil argument not allowed!' if byte.nil?
       raise RangeError if byte < -2**31 || byte >= 2**32
       trans.write([byte].pack('c'))
     end
 
     def write_i16(i16)
+      raise 'nil argument not allowed!' if i16.nil?
       trans.write([i16].pack('n'))
     end
 
     def write_i32(i32)
+      raise 'nil argument not allowed!' if i32.nil?
       raise RangeError if i32 < -2**31 || i32 >= 2**31
       trans.write([i32].pack('N'))
     end
 
     def write_i64(i64)
+      raise 'nil argument not allowed!' if i64.nil?
       raise RangeError if i64 < -2**63 || i64 >= 2**64
       hi = i64 >> 32
       lo = i64 & 0xffffffff
@@ -103,15 +107,18 @@
     end
 
     def write_double(dub)
+      raise 'nil argument not allowed!' if dub.nil?
       trans.write([dub].pack('G'))
     end
 
     def write_string(str)
+      raise 'nil argument not allowed!' if str.nil?
       buf = Bytes.convert_to_utf8_byte_buffer(str)
       write_binary(buf)
     end
 
     def write_binary(buf)
+      raise 'nil argument not allowed!' if buf.nil?
       write_i32(buf.bytesize)
       trans.write(buf)
     end
diff --git a/lib/rb/spec/binary_protocol_spec_shared.rb b/lib/rb/spec/binary_protocol_spec_shared.rb
index 58d65f0..4baedd7 100644
--- a/lib/rb/spec/binary_protocol_spec_shared.rb
+++ b/lib/rb/spec/binary_protocol_spec_shared.rb
@@ -122,7 +122,7 @@
   end
   
   it "should error gracefully when trying to write a nil byte" do
-    expect { @prot.write_byte(nil) }.to raise_error
+    expect { @prot.write_byte(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
   
   it "should write an i16" do
@@ -141,7 +141,7 @@
   end
   
   it "should error gracefully when trying to write a nil i16" do
-    expect { @prot.write_i16(nil) }.to raise_error
+    expect { @prot.write_i16(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
   
   it "should write an i32" do
@@ -158,7 +158,7 @@
   end
   
   it "should error gracefully when trying to write a nil i32" do
-    expect { @prot.write_i32(nil) }.to raise_error
+    expect { @prot.write_i32(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
   
   it "should write an i64" do
@@ -181,7 +181,7 @@
   end
   
   it "should error gracefully when trying to write a nil i64" do
-    expect { @prot.write_i64(nil) }.to raise_error
+    expect { @prot.write_i64(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
   
   it "should write a double" do
@@ -194,7 +194,7 @@
   end
   
   it "should error gracefully when trying to write a nil double" do
-    expect { @prot.write_double(nil) }.to raise_error
+    expect { @prot.write_double(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
 
   if RUBY_VERSION >= '1.9'
@@ -247,9 +247,13 @@
   end
 
   it "should error gracefully when trying to write a nil string" do
-    expect { @prot.write_string(nil) }.to raise_error
+    expect { @prot.write_string(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
   end
-  
+
+  it "should error gracefully when trying to write a nil binary" do
+    expect { @prot.write_binary(nil) }.to raise_error(StandardError, 'nil argument not allowed!')
+  end
+
   it "should write the message header without version when writes are not strict" do
     @prot = protocol_class.new(@trans, true, false) # no strict write
     @prot.write_message_begin('testMessage', Thrift::MessageTypes::CALL, 17)
