Index: /branches/ide-1.0/ccl/hemlock/src/htext3.lisp
===================================================================
--- /branches/ide-1.0/ccl/hemlock/src/htext3.lisp	(revision 6657)
+++ /branches/ide-1.0/ccl/hemlock/src/htext3.lisp	(revision 6658)
@@ -31,4 +31,14 @@
         (region mark point)
         (region point mark)))))
+
+;;; Return T if the buffer has an active region (without deactivating
+;;; it), NIL otherwise.
+(defun %buffer-current-region-p (b)
+  (and (typep b 'buffer)
+             (variable-value 'hemlock::active-regions-enabled)
+             (eql (buffer-signature b)
+                  (buffer-region-active b))))
+
+
              
 
@@ -38,9 +48,5 @@
   (declare (type base-char character))
   (let* ((line (mark-line mark))
-	 (buffer (line-%buffer line))
-         (region (%buffer-current-region buffer)))
-    (check-buffer-modification buffer mark)
-    (when region
-      (delete-region region))
+	 (buffer (line-%buffer line)))
     (modifying-buffer buffer
 		      (modifying-line line mark)
@@ -87,10 +93,6 @@
          (len (length string))
 	 (buffer (line-%buffer line))
-	 (string (coerce string 'simple-string))
-         (region (%buffer-current-region buffer)))
+	 (string (coerce string 'simple-string)))
     (declare (simple-string string))
-    (check-buffer-modification buffer mark)
-    (when region
-      (delete-region region))
     (unless (zerop len)
       (if (%sp-find-character string 0 len #\newline)
@@ -149,5 +151,4 @@
 	     (old-chars (line-chars line)))
 	(declare (simple-string old-chars))
-        (check-buffer-modification buffer mark)
 	(modifying-buffer buffer
 	  ;;hack marked line's chars
@@ -226,5 +227,4 @@
 	     (old-chars (line-chars line)))
 	(declare (simple-string old-chars))
-        (check-buffer-modification buffer mark)
 	(modifying-buffer buffer
 	  ;; Make new chars for first and last lines.
