                        (.pop (aget iterators i))))))
                (let [old-key (.inner-key iterator)]
                  (.next iterator)
-                 (if (.end? iterator)
+                 (if (true? (.end? iterator))
                    (do
                      (.undo iterator)
                      (recur new-var (- new-var 1) 0))

         (dotimes [i (alength iterators)]
           (let [iterator (aget iterators i)]
             (.reset iterator)
             (when (.end? iterator)
               (set! end? true))))
         (dotimes [i (alength seek-key)]
           (aset seek-key i least))

             (debug :search max-key current seek-key)
             (aset seek-key new-var max-key)
             (.seek iterator seek-key)
             (if (true? (.end? iterator))
               (do
                 (.undo iterator)
                 (recur new-var (- new-var 1) 0))
