diff --git a/lib/plucky/criteria_hash.rb b/lib/plucky/criteria_hash.rb
index <HASH>..<HASH> 100644
--- a/lib/plucky/criteria_hash.rb
+++ b/lib/plucky/criteria_hash.rb
@@ -72,7 +72,7 @@ module Plucky
     end
 
     def object_ids=(value)
-      raise ArgumentError unless value.respond_to?(:flatten)
+      raise ArgumentError unless value.is_a?(Array)
       @options[:object_ids] = value.flatten
     end
 
diff --git a/test/plucky/test_criteria_hash.rb b/test/plucky/test_criteria_hash.rb
index <HASH>..<HASH> 100644
--- a/test/plucky/test_criteria_hash.rb
+++ b/test/plucky/test_criteria_hash.rb
@@ -37,7 +37,7 @@ class CriteriaHashTest < Test::Unit::TestCase
         criteria.object_ids.should == [:_id]
       end
       
-      should "raise argument error if does not respond to flatten" do
+      should "raise argument error if not array" do
         assert_raises(ArgumentError) { CriteriaHash.new.object_ids = {} }
         assert_raises(ArgumentError) { CriteriaHash.new.object_ids = nil }
         assert_raises(ArgumentError) { CriteriaHash.new.object_ids = 'foo' }
Ruby <I> fix. Hashes respond to flatten so just allowing arrays which should be fine.