Index: /trunk/ccl/hemlock/src/listener.lisp
===================================================================
--- /trunk/ccl/hemlock/src/listener.lisp	(revision 779)
+++ /trunk/ccl/hemlock/src/listener.lisp	(revision 780)
@@ -482,5 +482,17 @@
   "Evaluates lisp forms between the point and the mark in the editor Lisp."
   (declare (ignore p))
-  (eval-region (current-region)))
+  (if (region-active-p)
+    (eval-region (current-region))
+    (let* ((point (current-point)))
+      (pre-command-parse-check point)
+      (when (valid-spot point nil)      ; not in the middle of a comment
+        (cond ((eql (next-character point) #\()
+               (with-mark ((m point))
+                 (if (list-offset m 1)
+                   (eval-region (region point m)))))
+              ((eql (previous-character point) #\))
+               (with-mark ((m point))
+                 (if (list-offset m -1)
+                   (eval-region (region m point))))))))))
            
 (defcommand "Editor Re-evaluate Defvar" (p)
