diff --git a/lib/webrat/core/matchers/have_xpath.rb b/lib/webrat/core/matchers/have_xpath.rb
index <HASH>..<HASH> 100644
--- a/lib/webrat/core/matchers/have_xpath.rb
+++ b/lib/webrat/core/matchers/have_xpath.rb
@@ -15,7 +15,7 @@ module Webrat
         matched = matches(stringlike)
 
         if @options[:count]
-          matched.size == @options[:count] && (!@block || @block.call(matched))
+          matched.size == @options[:count].to_i && (!@block || @block.call(matched))
         else
           matched.any? && (!@block || @block.call(matched))
         end
diff --git a/spec/public/matchers/have_selector_spec.rb b/spec/public/matchers/have_selector_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/public/matchers/have_selector_spec.rb
+++ b/spec/public/matchers/have_selector_spec.rb
@@ -61,6 +61,10 @@ describe "have_selector" do
         @body.should have_selector("li", :count => 4)
       }.should raise_error(Spec::Expectations::ExpectationNotMetError)
     end
+    
+    it "should convert a string to an integer for count" do
+      @body.should have_selector("li", :count => "3")
+    end
   end
 
   describe "specifying nested elements" do
Forces an integer to fix Issue #<I>