     )
   )
 
+(defvar quickopen-current-frame nil)
 (defvar quickopen-current-buffer nil)
 (defvar quickopen-current-buffer-open-result-in-other-window nil)
 (defvar quickopen-old-window-configuration nil)
 
 (defun quickopen-find-file-using-curses (&optional query skip-ui-if-exact-match other-window)
-  (if quickopen-current-buffer
-      (progn
-        (message "Already open, cannot continue.")
-        )
+  (when quickopen-current-buffer
+    (if (and (quickopen-has-gui)
+             quickopen-current-frame
+             (null (frame-live-p quickopen-current-frame))
+             )
+        (progn
+          (when (process-live-p (get-buffer-process quickopen-current-buffer))
+            (kill-process (get-buffer-process quickopen-current-buffer))
+            )
+          (setq quickopen-current-frame)
+          (setq quickopen-current-buffer)
+          )
+      (error "Already open, cannot continue.")
+      )
+    )
+  (when t
     (let ((program (format "%s/%s" quickopen-dir-base "quickopen"))
           (current-buffer-filename (buffer-file-name (current-buffer)))
           )

(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)

              )
            )
      (setq quickopen-current-buffer-open-result-in-other-window other-window)
      (when quickopen-current-frame
        (select-frame quickopen-current-frame)
        )
      (set-buffer quickopen-current-buffer)
      (term-mode)
      (term-char-mode)
