Index: /trunk/ccl/level-0/l0-aprims.lisp
===================================================================
--- /trunk/ccl/level-0/l0-aprims.lisp	(revision 5062)
+++ /trunk/ccl/level-0/l0-aprims.lisp	(revision 5063)
@@ -59,5 +59,10 @@
   (multiple-value-bind (s o n) (dereference-base-string string)
     (declare (fixnum o n))
-    (%copy-ivector-to-ptr s o pointer 0 n)
+    (do* ((i 0 (1+ i))
+          (o o (1+ o)))
+         ((= i n))
+      (declare (fixnum i o))
+      (setf (%get-unsigned-byte pointer i)
+            (logand #xff (char-code (schar s o)))))
     (setf (%get-byte pointer n) 0))
   nil)
@@ -68,5 +73,10 @@
     (multiple-value-bind (s o) (dereference-base-string string)
       (declare (fixnum o))
-      (%copy-ivector-to-ptr s (the fixnum (+ o start)) pointer 0 n)
+          (do* ((i 0 (1+ i))
+          (o (the fixnum (+ o start)) (1+ o)))
+         ((= i n))
+      (declare (fixnum i o))
+      (setf (%get-unsigned-byte pointer i)
+            (logand #xff (char-code (schar s o)))))
     (setf (%get-byte pointer n) 0)
     nil)))
