                                           (focus-query rootq path)
                                           path)
                           cp-query      (cond-> focused-query
-                                          (not= (zip/node focused-query) query)
+                                          (and (not= (zip/node focused-query) query)
+                                               (not recursive?))
                                           (zip/replace query))]
                       (swap! class-path->query update-in [classpath]
                         (fnil conj #{}) cp-query)))


(declare get-indexer)

(defn get-query
  "Return a IQuery/IParams instance bound query. Works for component classes
   and component instances. See also om.next/full-query."

        (let [cp (class-path x)
              r (get-reconciler x)
              data-path (into [] (remove number?) (path x))
              class-path-query-data (get (:class-path->query @(get-indexer r)) cp)]
          (get-indexed-query x class-path-query-data data-path)))
      (get-class-or-instance-query x))))

(defn tag [x class]
