diff --git a/Lib/test/test_ucn.py b/Lib/test/test_ucn.py
index f680140..0797f2c 100644
--- a/Lib/test/test_ucn.py
+++ b/Lib/test/test_ucn.py
@@ -10,6 +10,10 @@
 print 'Testing General Unicode Character Name, and case insensitivity...',
 
 # General and case insensitivity test:
+try:
+    # put all \N escapes inside exec'd raw strings, to make sure this
+    # script runs even if the compiler chokes on \N escapes
+    exec r"""
 s = u"\N{LATIN CAPITAL LETTER T}" \
     u"\N{LATIN SMALL LETTER H}" \
     u"\N{LATIN SMALL LETTER E}" \
@@ -37,6 +41,9 @@
     u"\N{LATIN SMALL LETTER P}" \
     u"\N{FULL STOP}"
 verify(s == u"The rEd fOx ate the sheep.", s)
+"""
+except UnicodeError, v:
+    print v
 print "done."
 
 import ucnhash
@@ -63,10 +70,12 @@
 
 # misc. symbol testing
 print "Testing misc. symbols for unicode character name expansion....",
+exec r"""
 verify(u"\N{PILCROW SIGN}" == u"\u00b6")
 verify(u"\N{REPLACEMENT CHARACTER}" == u"\uFFFD")
 verify(u"\N{HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK}" == u"\uFF9F")
 verify(u"\N{FULLWIDTH LATIN SMALL LETTER A}" == u"\uFF41")
+"""
 print "done."
 
 
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index a06c40b..585afe6 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1240,15 +1240,15 @@
                 PyObject *mod = 0, *v = 0;
                 mod = PyImport_ImportModule("ucnhash");
                 if (mod == NULL)
-                    goto onError;
+                    goto ucnhashError;
                 v = PyObject_GetAttrString(mod,"Unicode_Names_CAPI");
                 Py_DECREF(mod);
                 if (v == NULL)
-                    goto onError;
+                    goto ucnhashError;
                 unicode_names = PyCObject_AsVoidPtr(v);
                 Py_DECREF(v);
                 if (unicode_names == NULL)
-                    goto onError;
+                    goto ucnhashError;
             }
                 
             if (*s == '{') {
@@ -1311,6 +1311,11 @@
 		goto onError;
     return (PyObject *)v;
     
+ ucnhashError:
+    PyErr_SetString(PyExc_UnicodeError,
+                    "\\N escapes not supported (can't load ucnhash module)");
+    return NULL;
+
  onError:
     Py_XDECREF(v);
     return NULL;
