diff --git a/Contributors.rdoc b/Contributors.rdoc
index b3b25ff6..e40b20db 100644
--- a/Contributors.rdoc
+++ b/Contributors.rdoc
@@ -21,3 +21,4 @@ Contributions since:
 * nowhereman
 * David J. Lee (DavidJLee)
 * Cody Cutrer (ccutrer)
+* WoodsBagotAndreMarquesLee
diff --git a/lib/net/ldap/connection.rb b/lib/net/ldap/connection.rb
index 0e3d7e05..7ed0bdb5 100644
--- a/lib/net/ldap/connection.rb
+++ b/lib/net/ldap/connection.rb
@@ -571,12 +571,13 @@ def search(args = nil)
       result_pdu || OpenStruct.new(:status => :failure, :result_code => Net::LDAP::ResultCodeOperationsError, :message => "Invalid search")
     end # instrument
   ensure
+
     # clean up message queue for this search
     messages = message_queue.delete(message_id)
 
     # in the exceptional case some messages were *not* consumed from the queue,
     # instrument the event but do not fail.
-    unless messages.empty?
+    if !messages.nil? && !messages.empty?
       instrument "search_messages_unread.net_ldap_connection",
                  message_id: message_id, messages: messages
     end
diff --git a/lib/net/ldap/filter.rb b/lib/net/ldap/filter.rb
index 2c5da3fa..4f5da3e5 100644
--- a/lib/net/ldap/filter.rb
+++ b/lib/net/ldap/filter.rb
@@ -645,9 +645,8 @@ def match(entry)
 
   ##
   # Converts escaped characters (e.g., "\\28") to unescaped characters
-  # ("(").
   def unescape(right)
-    right.gsub(/\\([a-fA-F\d]{2})/) { [$1.hex].pack("U") }
+    right.to_s.gsub(/\\([a-fA-F\d]{2})/) { [$1.hex].pack("U") }
   end
   private :unescape
 
diff --git a/test/test_filter.rb b/test/test_filter.rb
index eb6192d0..139612a1 100644
--- a/test/test_filter.rb
+++ b/test/test_filter.rb
@@ -215,4 +215,9 @@ def test_parse_ber_escapes_characters
     filter = Net::LDAP::Filter.parse_ber(ber.read_ber(Net::LDAP::AsnSyntax))
     assert_equal "(objectclass=#{escaped}*#{escaped}*#{escaped})", filter.to_s
   end
+
+  def test_unescape_fixnums
+    filter = Net::LDAP::Filter.eq("objectclass", 3)
+    assert_equal "\xA3\x10\x04\vobjectclass\x04\x013".b, filter.to_ber
+  end
 end