diff --git a/lib/mongo_mapper/query.rb b/lib/mongo_mapper/query.rb
index <HASH>..<HASH> 100644
--- a/lib/mongo_mapper/query.rb
+++ b/lib/mongo_mapper/query.rb
@@ -79,7 +79,11 @@ module MongoMapper
             key = normalized_key(key.field)
           end
 
-          criteria[key] = normalized_value(key, value)
+          if criteria[key] && criteria.kind_of?(Hash) && value.kind_of?(Hash)
+            value.keys.each {|k| criteria[key][k] = value[k]}
+          else
+            criteria[key] = normalized_value(key, value)
+          end
         end
 
         criteria
@@ -133,4 +137,4 @@ module MongoMapper
         end
       end
   end
-end
\ No newline at end of file
+end
diff --git a/test/unit/test_query.rb b/test/unit/test_query.rb
index <HASH>..<HASH> 100644
--- a/test/unit/test_query.rb
+++ b/test/unit/test_query.rb
@@ -53,6 +53,12 @@ class QueryTest < Test::Unit::TestCase
       criteria[:created_at]['$gt'].should be_utc
     end
 
+    should "work with multiple symbol operators on the same field" do
+      Query.new(Message, :position.gt => 0, :position.lte => 10).criteria.should == {
+        :position => {"$gt" => 0, "$lte" => 10}
+      }
+    end
+
     should "work with simple criteria" do
       Query.new(Room, :foo => 'bar').criteria.should == {
         :foo => 'bar'
Allow multiple symbol operators on the same field