         (go (loop []
               (let [[v ch] (alts! [autocomplete kill-chan])]
                 (when (= ch autocomplete)
-                  (om/set-state! owner :results
-                                 (seq (mapcat (fn [e] (e v (config :thread-id))) engines)))
+                  (om/update-state! owner
+                                    #(assoc %
+                                       :results (seq (mapcat (fn [e] (e v (config :thread-id))) engines))
+                                       :highlighted-result-index 0))
                   (recur)))))))
 
     om/IDidMount

    (init-state [_]
      {:text ""
       :force-close? false
       :highlighted-result-index -1
       :results nil
       :kill-chan (chan)
       :autocomplete-chan (chan)

                                #(mod (dec %) (count results))))
            highlight-clear!
            (fn []
              (om/set-state! owner :highlighted-result-index 0))
            close-autocomplete!
            (fn []
              (highlight-clear!))
