diff --git a/interface/interface.lisp b/interface/interface.lisp
index 1a0e56f154a42e0460102a91364c64a5559cd70d..f976b2fef78ea5bd097761aba3f297e3f7e44547 100644
--- a/interface/interface.lisp
+++ b/interface/interface.lisp
@@ -256,14 +256,14 @@
 
 (defun use-graphics-interface (&optional (kind *interface-style*))
   (cond
-   ((and (member kind '(:window :windows :graphics :graphical :x))
-	 (assoc :display ext:*environment-list*))
-    t)
+   ((not (assoc :display ext:*environment-list*)) nil)
+   ((member kind '(:window :windows :graphics :graphical :x)) t)
    ((member kind '(:command-line :tty)) nil)
    (t
-    (error "Interface specification must be one of :window, :windows, ~%~
-	    :graphics, :graphical, :x, :command-line, or :tty -- ~%~
-	    not ~S." kind))))
+    (let ((*interface-style* :tty))
+      (error "Interface specification must be one of :window, :windows, ~%~
+	      :graphics, :graphical, :x, :command-line, or :tty -- ~%~
+	      not ~S." kind)))))
 
 (defun close-connection-hook (connection)
   (declare (ignore connection))