Index: swine-cmds.lisp
===================================================================
RCS file: /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp,v
retrieving revision 1.3
diff -u -r1.3 swine-cmds.lisp
--- swine-cmds.lisp	22 Feb 2006 10:47:29 -0000	1.3
+++ swine-cmds.lisp	14 Mar 2006 10:26:19 -0000
@@ -177,8 +177,17 @@
       (when name
         (with-slots (package) (syntax (buffer (current-window)))
           (let ((function-symbol (let* ((pos2 (position #\: name :from-end t))
-                                        (pos1 (if (and pos2 (char= (elt name (1- pos2)) #\:)) (1- pos2) pos2) ))
-                                   (handler-case (if pos2 (find-symbol (subseq name (1+ pos2)) (subseq name 0 pos1))
+                                        (pos1 (if (and pos2
+                                                       ;; If the first
+                                                       ;; element of
+                                                       ;; the list is
+                                                       ;; a keyword
+                                                       ;; symbol, pos2
+                                                       ;; might be 0.
+                                                       (plusp pos2)
+                                                       (char= (elt name (1- pos2)) #\:))
+                                                  (1- pos2) pos2)))
+                                   (handler-case (if pos1 (find-symbol (subseq name (1+ pos2)) (subseq name 0 pos1))
                                                      (find-symbol name (or package *package*)))
                                      (package-error (e)
                                        ;; The specified symbol is in
