diff --git a/hemlock/bit-stream.lisp b/hemlock/bit-stream.lisp
index 3aeebd36e8c0ea2779dda41d57cd824ac0a0e53d..fc4be3408c68bc2f6ebfe93055065dace50628d1 100644
--- a/hemlock/bit-stream.lisp
+++ b/hemlock/bit-stream.lisp
@@ -86,7 +86,7 @@
 	 (funcall (device-force-output device)))))
     (:line-length
      (bitmap-hunk-char-width (bitmap-hunk-output-stream-hunk stream)))
-    (:element-type 'string-char)))
+    (:element-type 'base-character)))
 
 
 ;;; Bitmap-Hunk-Out  --  Internal
diff --git a/hemlock/htext3.lisp b/hemlock/htext3.lisp
index 21c5fa4dfb7a425d5fa5f80791f07b30e032c081..27899017c939ce42f3984d3833db135d28bcfd1b 100644
--- a/hemlock/htext3.lisp
+++ b/hemlock/htext3.lisp
@@ -23,8 +23,7 @@
 
 (defun insert-character (mark character)
   "Inserts the Character at the specified Mark."
-  (unless (and character (string-char-p character))
-    (error "Character must be non-nil and a string-char -- ~S" character))
+  (declare (type base-character character))
   (let* ((line (mark-line mark))
 	 (buffer (line-%buffer line)))
     (modifying-buffer buffer
diff --git a/hemlock/table.lisp b/hemlock/table.lisp
index f046f15abad5c30f4b142ceaeebb94fd2b6d64b8..1e4b7dc9be935130a3260609ced0a8391fb40875 100644
--- a/hemlock/table.lisp
+++ b/hemlock/table.lisp
@@ -70,7 +70,7 @@
 	    (:print-function print-string-table))
   "This structure is used to implement the Hemlock string-table type."
   ;; Character used to 
-  (separator #\Space :type string-char)	   ; character used for word separator
+  (separator #\Space :type base-character) ; character used for word separator
   (num-nodes 0 :type fixnum)		   ; number of nodes in string table
   (value-nodes (make-array initial-string-table-size)) ; value node array
   (first-word-table (make-word-table)))	   ; pointer to first WORD-TABLE
@@ -83,7 +83,7 @@
   "Creates and returns a Hemlock string-table.  If Intitial-Contents is
   supplied in the form of an A-list of string-value pairs, these pairs
   will be used to initialize the table.  If Separator, which must be a
-  string-char, is specified then it will be used to distinguish word
+  base-character, is specified then it will be used to distinguish word
   boundaries."
   (let ((table (%make-string-table separator)))
     (dolist (x initial-contents)
@@ -261,7 +261,7 @@
 ) ; eval-when
 
 (defun with-folded-munge-string (str separator)
-  (declare (simple-string str) (string-char separator))
+  (declare (simple-string str) (base-character separator))
   (let ((str-len (length str))
 	(sep-pos nil)
 	(buf-pos 0))
@@ -567,7 +567,7 @@
   (values nil nil))
 
 (defun compute-field-pos (given best separator)
-  (declare (simple-string given best) (string-char separator))
+  (declare (simple-string given best) (base-character separator))
   (let ((give-pos 0)
 	(best-pos 0))
     (loop
@@ -581,7 +581,7 @@
 ;;;; Find-Longest-Completion
 
 (defun find-longest-completion (strings separator)
-  (declare (string-char separator))
+  (declare (base-character separator))
   (let ((first (car strings))
 	(rest-strings (cdr strings))
 	(punt-p nil)
diff --git a/hemlock/ts-stream.lisp b/hemlock/ts-stream.lisp
index e14aab70c73c63d36fbe0d9def922b03ca628e5b..cc4454a06017241f3b058cfd087653f789896b02 100644
--- a/hemlock/ts-stream.lisp
+++ b/hemlock/ts-stream.lisp
@@ -151,7 +151,7 @@
 ;;; Output a single character to stream.
 ;;;
 (defun %ts-stream-out (stream char)
-  (declare (string-char char))
+  (declare (base-character char))
   (when (= (ts-stream-output-buffer-index stream)
 	   ts-stream-output-buffer-size)
     (%ts-stream-flsbuf stream))
diff --git a/hemlock/tty-stream.lisp b/hemlock/tty-stream.lisp
index 84b1781bf4cd0c52313a996b77d21d50540f008f..448ea3be20516c7edf405ead7f718133ed21814d 100644
--- a/hemlock/tty-stream.lisp
+++ b/hemlock/tty-stream.lisp
@@ -88,7 +88,7 @@
 	 (funcall (device-force-output device)))))
     (:line-length
      (stream-hunk-width (tty-hunk-output-stream-hunk stream)))
-    (:element-type 'string-char)))
+    (:element-type 'base-character)))
 
 ;;; HUNK-SOUT writes a byte-blt's a string to a hunk-stream's buffer.
 ;;; When newlines are found, recurse on the substrings delimited by start,