 (defun geiser-chicken--exit-command () ",q")
 
 (defun geiser-chicken--symbol-begin (module)
-  (apply
-   'max
-   (append
-    (list (save-excursion (beginning-of-line) (point))
-	  (save-excursion (skip-syntax-backward "^-()>") (point)))
-    (mapcar
-     (lambda (match-string)
-       (save-excursion (skip-chars-backward match-string) (point)))
-     geiser-chicken-prefix-delimiters))))
+  (let ((distance-to-beginning-of-line (- (point) (line-beginning-position))))
+    (apply
+     'max
+     (append
+      (list (save-excursion (beginning-of-line) (point))
+	    (save-excursion (skip-syntax-backward "^-()>" distance-to-beginning-of-line)
+			    (point)))
+      (mapcar
+       (lambda (match-string)
+	 (save-excursion (skip-chars-backward match-string distance-to-beginning-of-line)
+			 (point)))
+       geiser-chicken-prefix-delimiters)))))
+
+ 
 ;;; Error display
 

  (compilation-setup t)
  (geiser-chicken--compile-or-load (not geiser-chicken-compile-geiser-p)))

;;; Implementation definition:

(define-geiser-implementation chicken

    "unless" "use" "when" "with-input-from-pipe" "match" "match-lambda"
    "match-lambda*" "match-let" "match-let*" "receive"))


;;; Customization:

(defgroup geiser-chicken nil
