                                                  (prompt-check-list question choices (mod (dec selected) num-opts) false false))
                                    (= 66 last) (do
                                                  (clear-list! num-opts)
-                                                 (prompt-check-list question choices (mod (inc selected) num-opts) false false))))))
+                                                 (prompt-check-list question choices (mod (inc selected) num-opts) false false))))
+                               (restore-terminal! term)))
             :else (do
                     (clear-list! num-opts)
-                    (prompt-select-list question choices selected false false))))
-        )))
-
-  )
+                    (prompt-check-list question choices selected false false))))))))
 
 ; Public functions
 

  (let [term (Terminal/getTerminal)]
    (print (esc/cursor-hide))
    (if (= true submitted?)
      (let [opt-selected (nth choices selected nil)
            opt-selected-label (get opt-selected :label)
            opt-selected-val (get opt-selected :value)]
        (.restoreTerminal term)
        (print (esc/cursor-show))
        (println (str "[" (c/green "▸") "] " question ": " (c/cyan opt-selected-label)))
        opt-selected-val)

      (let [num-opts (count choices)
            tip (if (= true first-rendering?) (c/dim " (UP/DOWN move, SPACE check/uncheck, ENTER submit)") "")]

                                                 (prompt-select-list question choices (mod (dec selected) num-opts) false false))
                                   (= 66 last) (do
                                                 (clear-list! num-opts)
                                                 (prompt-select-list question choices (mod (inc selected) num-opts) false false))))
                               (restore-terminal! term)))
            :else (do
                    (clear-list! num-opts)
                    (prompt-select-list question choices selected false false))))))))
