Index: /trunk/ccl/level-1/l1-aprims.lisp
===================================================================
--- /trunk/ccl/level-1/l1-aprims.lisp	(revision 5258)
+++ /trunk/ccl/level-1/l1-aprims.lisp	(revision 5259)
@@ -896,11 +896,5 @@
       c)))
 
-(defun chkbounds (arr start end)
-  (flet ((are (a i)(error "Array index ~S out of bounds for ~S." a i)))
-    (let ((len (length arr)))
-      (if (and end (> end len))(are arr end))
-      (if (and start (or (< start 0)(> start len)))(are arr start))
-      (if (%i< (%i- (or end len)(or start 0)) 0)
-        (error "Start ~S exceeds end ~S." start end)))))
+
 
 (defun string-start-end (string start end)
@@ -913,6 +907,8 @@
       (if (%i> start end)
         (error "Start ~S exceeds end ~S." start end))
-      (multiple-value-bind (str off)(array-data-and-offset string)
-        (values str (%i+ off start)(%i+ off end))))))
+      (if (typep string 'simple-string)
+        (values string start end)
+        (multiple-value-bind (str off)(array-data-and-offset string)
+          (values str (%i+ off start)(%i+ off end)))))))
 
 (defun get-properties (place indicator-list)
