 	       (buffer-substring
 		(point)
 		(progn (forward-sexp 1)
-		       (while (looking-at "\\sw\\|\\s_\\|(\\|)")
+		       ;; advance if we have a |
+		       (when (looking-at "|")
 			 (forward-sexp 1))
 		       (while (looking-at "\\s'")
 			 (forward-char 1))

(defun get-simple-symbol-at-point (&optional up-p package)
  (let* ((symbol
	  (cond
	   ((looking-at "\\sw\\|\\s_\\|(\\|)")
	    (save-excursion
	      ;; go at the beginning of the word, we include parenthesis (they can be part of function names)
	      (while (looking-at "\\sw\\|\\s_\\|(\\|)")
		(backward-char 1))
	      ;; advance until we have a "real" start of worf)
	      (while (not (looking-at "\\sw\\|\\s_"))


(defun set-lisp-mode ()
  (auto-fill-mode -1) ;;Disable auto lines break
  
  ;; General shortcuts
  ;;(define-key fi:common-lisp-mode-map "C-M-q" 'indent-defun)
