         ;; that it can create a new buffer.
         (setq quickopen-current-buffer nil)
 
+        ;; Close the old frame.
+        (when quickopen-current-frame
+          (delete-frame quickopen-current-frame)
+          (setq quickopen-current-frame nil)
+          )
+
         ;; restore window config
         (set-window-configuration quickopen-old-window-configuration)
         (setq quickopen-old-window-configuration nil)

(when (and quickopen-override-ff-find (quickopen-has-gui))
  (defadvice ff-get-file (around quickopen-ff-get-file (search-dirs filename-template &optional suffix-list other-window))
    (message "ff-get-file-quickopen-wrapper")
    (setq ad-return-value 
          (let ((filename (ff-get-file-name search-dirs filename-template suffix-list)))
            (cond
             ((not filename)

      (when quickopen-curses-fullscreen
        (delete-other-windows)
        )
      (when (quickopen-has-gui)
        (setq quickopen-current-frame
              (make-frame '((width . 80)
                            (height. 1))
                          )
              )
        )
      (when (get-buffer "*quickopen*")
        (with-current-buffer "*quickopen*"
          (delete-region (point-min) (point-max))
          )
        )
      (setq quickopen-current-buffer
            (let ((open-buffers (quickopen-get-open-filenames-string))
                  (args (list "quickopen" program nil "search" "--curses" "--ok" "--lisp-results")))
              (when (> (length open-buffers) 0)
