I am running into a behavior frequently which hangs SBCL (at least I haven't been able to figure out how to free it). I've reduced it to this simple scenario:

(defpackage :bob (:use :cl))
(in-package :bob)
(defun foo () (print "This is Bob's foo"))
(defpackage :jane (:use :cl))
(in-package :jane)
(defun bar () (print "This is Jane's bar"))
(in-package :bob)
(bar) ;;=>error
(import 'jane::bar)                     ; hangs SBCL

At this point the REPL is unresponsive and the only way I know to get it back is to kill *inferior-lisp* by closing the buffer and creating a new one through M-x slime.

Has anyone else seen this behavior?
Any idea what it's all about and how to get around it?

--Jeff Cunningham