diff --git a/ansi-tests/gclload2.lsp b/ansi-tests/gclload2.lsp
index eddd01c31b39bf352fb6e319fefd8f47c3d6a906..bf754a1dec62dfbc58e9183c1b00d457e0d86cca 100644
--- a/ansi-tests/gclload2.lsp
+++ b/ansi-tests/gclload2.lsp
@@ -128,4 +128,5 @@
 ;;; Tests of string comparison functions
 (compile-and-load "string-aux.lsp")
 (load "string-comparisons.lsp")
+(load "make-string.lsp")
 
diff --git a/ansi-tests/make-string.lsp b/ansi-tests/make-string.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..d2cfc270d944a56cbe11842f34138af6e8df468b
--- /dev/null
+++ b/ansi-tests/make-string.lsp
@@ -0,0 +1,74 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Sat Oct  5 12:32:20 2002
+;;;; Contains: Tests for MAKE-STRING
+
+(in-package :cl-test)
+
+(deftest make-string.1
+  (let ((s (make-string 10)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 (string-all-the-same s)))
+  t)
+
+(deftest make-string.2
+  (let ((s (make-string 10 :initial-element #\a)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 s))
+  "aaaaaaaaaa")
+
+(deftest make-string.3
+  (let ((s (make-string 10 :initial-element #\a
+			:element-type 'character)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 s))
+  "aaaaaaaaaa")
+
+(deftest make-string.4
+  (let ((s (make-string 10 :initial-element #\a
+			:element-type 'standard-char)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 s))
+  "aaaaaaaaaa")
+
+(deftest make-string.5
+  (let ((s (make-string 10 :initial-element #\a
+			:element-type 'base-char)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 s))
+  "aaaaaaaaaa")
+
+(deftest make-string.6
+  (make-string 0)
+  "")
+
+(deftest make-string.7
+  (let ((s (make-string 10 :element-type 'character)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 (string-all-the-same s)))
+  t)
+
+(deftest make-string.8
+  (let ((s (make-string 10 :element-type 'standard-char)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 (string-all-the-same s)))
+  t)
+
+(deftest make-string.9
+  (let ((s (make-string 10 :element-type 'base-char)))
+    (and (stringp s)
+	 (eql (length s) 10)
+	 (string-all-the-same s)))
+  t)
+
+
+
+
+
diff --git a/ansi-tests/string-aux.lsp b/ansi-tests/string-aux.lsp
index 9c459c67080d23718cc9e3780480f0d76734d3ff..d6e04f4aa3db8c4428b600c4db299aa6050bc7e3 100644
--- a/ansi-tests/string-aux.lsp
+++ b/ansi-tests/string-aux.lsp
@@ -139,7 +139,14 @@
 		 (and x y (eq comparison '=))))))))
 
 (defun make-random-string (n)
-  (let ((s (make-string n)))
+  (let ((s (random-case
+	    (make-string n)
+	    (make-array n :element-type 'character
+			:initial-element #\a)
+	    (make-array n :element-type 'standard-char
+			:initial-element #\a)
+	    (make-array n :element-type 'base-char
+			:initial-element #\a))))
     (if (coin)
 	(dotimes (i n)
 	  (setf (char s i) (elt #(#\a #\b #\A #\B) (random 4))))
@@ -151,12 +158,8 @@
 			 (random 62)))))))
     s))
 
-
-
-	     
-      
-		   
-		   
-
-
-  
\ No newline at end of file
+(defun string-all-the-same (s)
+  (let ((len (length s)))
+    (or (= len 0)
+	(let ((c (char s 0)))
+	  (loop for d across s always (eql c d))))))