Index: /trunk/source/cocoa-ide/hemlock/src/bindings.lisp
===================================================================
--- /trunk/source/cocoa-ide/hemlock/src/bindings.lisp	(revision 14208)
+++ /trunk/source/cocoa-ide/hemlock/src/bindings.lisp	(revision 14209)
@@ -411,4 +411,5 @@
 (bind-key "Goto Absolute Line" #k"meta-g")
 ;;;(bind-key "Set Package Name" #k"control-x p" :mode "Lisp")
+(bind-key "Insert Sharp Comment" #k"meta-#")
 
 #+listener-bindings
Index: /trunk/source/cocoa-ide/hemlock/src/lispmode.lisp
===================================================================
--- /trunk/source/cocoa-ide/hemlock/src/lispmode.lisp	(revision 14208)
+++ /trunk/source/cocoa-ide/hemlock/src/lispmode.lisp	(revision 14209)
@@ -2300,2 +2300,23 @@
   (variable-value 'current-package :buffer buffer)
 ||#                
+
+(defcommand "Insert Sharp Comment" (p)
+  "Inserts #| |# around the selection and puts point between them."
+  (declare (ignore p))
+  (multiple-value-bind (start end) (buffer-selection-range (current-buffer))
+    (let ((point (current-point)))
+      (cond ((= start end)
+             (insert-string point "#|")
+             (insert-character point #\newline)
+             (insert-character point #\newline)
+             (insert-string point "|#")
+             (character-offset point -3))
+            (t
+             (with-mark ((start-mark point :left-inserting)
+                         (end-mark point :left-inserting))
+               (move-to-absolute-position start-mark start)
+               (move-to-absolute-position end-mark end)
+               (insert-string start-mark "#|
+")
+               (insert-string end-mark "
+|#")))))))
