          (if (not (zomp-get-shell-buffer))
              (zomp-shell)
            (let ((oldwin (selected-window)))
-             (switch-to-buffer-other-window (get-buffer zomp-shell-buffer-name))
-             (select-window oldwin))))
+             (display-buffer (get-buffer zomp-shell-buffer-name)))))
         (t
          (zomp-make-buffer-local-shell)
          (unless (zomp-get-shell-buffer)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; shell interaction

(defvar zomp-shell-buffer-name "*zomp-shell*"
  "The name of the buffer in which the zomp shell runs")

(defvar zomp-build-architecture "i386"

    (select-window original-window)))

(defun zomp-make-buffer-local-shell ()
  (set (make-variable-buffer-local 'zomp-shell-buffer-name-base)
       (format "zomp-shell<%s>" (buffer-name)))
  (set (make-variable-buffer-local 'zomp-shell-buffer-name)
       (format "*%s*" zomp-shell-buffer-name-base)))

(defun zomp-start-or-show-shell (&optional prefix)
  "Shows the shell in a buffer and starts it if it wasn't
