diff --git a/lisp/print.c b/lisp/print.c
index 0b8bac72b1526663849bd96b55bafe5d7182f44d..5694f8311801f8bdae597e6f6355e0e277c89809 100644
--- a/lisp/print.c
+++ b/lisp/print.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/print.c,v 1.25 2009/06/11 16:04:01 rtoy Rel $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/print.c,v 1.26 2010/10/10 12:52:58 rtoy Exp $ */
 
 #include <stdio.h>
 #include <string.h>
@@ -376,11 +376,28 @@ brief_otherptr(lispobj obj)
       case type_SymbolHeader:
 	  symbol = (struct symbol *) ptr;
 	  vector = (struct vector *) PTR(symbol->name);
+#ifndef UNICODE
 	  for (charptr = (char *) vector->data; *charptr != '\0'; charptr++) {
 	      if (*charptr == '"')
 		  putchar('\\');
 	      putchar(*charptr);
 	  }
+#else
+          {
+              char *charptr = (char *) vector->data;
+              int len = (int) (vector->length >> 2);
+              
+              while (len-- > 0) {
+                  if ((charptr[0] == 0)
+                      && (charptr[1] = '"')) {
+                      putchar('\\');
+                  }
+                  /* Just dump out the UTF-16 data */
+                  putchar(*charptr++);
+                  putchar(*charptr++);
+              }
+          }
+#endif
 	  break;
 
       case type_SimpleString: