diff --git a/pymongo/cursor.py b/pymongo/cursor.py
index <HASH>..<HASH> 100644
--- a/pymongo/cursor.py
+++ b/pymongo/cursor.py
@@ -133,9 +133,9 @@ class Cursor(object):
     def __query_spec(self):
         """Get the spec to use for a query.
         """
-        if self.__is_command or "$query" in self.__spec:
-            return self.__spec
-        spec = SON({"$query": self.__spec})
+        spec = self.__spec
+        if not self.__is_command and "$query" not in self.__spec:
+            spec = SON({"$query": self.__spec})
         if self.__ordering:
             spec["$orderby"] = self.__ordering
         if self.__explain:
support adding additional special query options automatically, even if we've already specified some manually