name conflict situations in CLHS 11.1.1.2.5, and provide a restart
     permitting resolution in favour of any of the conflicting symbols.
     (reported by Bruno Haible for CMUCL)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** RENAME-PACKAGE allows all package designators as new package
+       names.
 
 changes in sbcl-0.8.16 relative to sbcl-0.8.15:
   * enhancement: saving cores with foreign code loaded is now
 
 
 (defun stringify-name (name kind)
   (typecase name
-    (simple-base-string name)
-    (string (coerce name 'simple-base-string))
+    (simple-string name)
+    (string (coerce name 'simple-string))
     (symbol (symbol-name name))
-    (base-char (string name))
+    (character (string name))
     (t
      (error "bogus ~A name: ~S" kind name))))
 
 
 (defun %defpackage (name nicknames size shadows shadowing-imports
                    use imports interns exports implement lock doc-string)
-  (declare (type simple-base-string name)
+  (declare (type simple-string name)
           (type list nicknames shadows shadowing-imports
                 imports interns exports)
           (type (or list (member :default)) use)
-          (type (or simple-base-string null) doc-string)
+          (type (or simple-string null) doc-string)
           #!-sb-package-locks
           (ignore implement lock))
   (let ((package (or (find-package name)
 
   #!+sb-doc
   "the standard structure for the description of a package"
   ;; the name of the package, or NIL for a deleted package
-  (%name nil :type (or simple-base-string null))
+  (%name nil :type (or simple-string null))
   ;; nickname strings
   (%nicknames () :type list)
   ;; packages used by this package
   ;; shadowing symbols
   (%shadowing-symbols () :type list)
   ;; documentation string for this package
-  (doc-string nil :type (or simple-base-string null))
+  (doc-string nil :type (or simple-string null))
   ;; package locking
   #!+sb-package-locks
   (lock nil :type boolean)
 
   #!+sb-doc
   "Changes the name and nicknames for a package."
   (let* ((package (find-undeleted-package-or-lose package))
-        (name (string name))
+        (name (package-namify name))
         (found (find-package name))
         (nicks (mapcar #'string nicknames)))
     (unless (or (not found) (eq found package))
 
--- /dev/null
+;;;; miscellaneous tests of package-related stuff
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;; 
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(make-package "FOO")
+(defvar *foo* (find-package (coerce "FOO" 'base-string)))
+(rename-package "FOO" (make-array 0 :element-type nil))
+(assert (eq *foo* (find-package "")))
+(assert (delete-package ""))
+
+(sb-ext:quit :unix-status 104)
 
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.16.6"
+"0.8.16.7"