diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index fc4146c..0ecf6a5 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -190,7 +190,7 @@
 missing_pattern = "no Python documentation found for '%s'"
 
 # output pattern for module with bad imports
-badimport_pattern = "problem in %s - ImportError: No module named %s"
+badimport_pattern = "problem in %s - ImportError: No module named %r"
 
 def run_pydoc(module_name, *args):
     """
diff --git a/Lib/unittest/test/test_loader.py b/Lib/unittest/test/test_loader.py
index f7e31a5..d1b9ef5 100644
--- a/Lib/unittest/test/test_loader.py
+++ b/Lib/unittest/test/test_loader.py
@@ -239,7 +239,7 @@
         try:
             loader.loadTestsFromName('sdasfasfasdf')
         except ImportError as e:
-            self.assertEqual(str(e), "No module named sdasfasfasdf")
+            self.assertEqual(str(e), "No module named 'sdasfasfasdf'")
         else:
             self.fail("TestLoader.loadTestsFromName failed to raise ImportError")
 
@@ -619,7 +619,7 @@
         try:
             loader.loadTestsFromNames(['sdasfasfasdf'])
         except ImportError as e:
-            self.assertEqual(str(e), "No module named sdasfasfasdf")
+            self.assertEqual(str(e), "No module named 'sdasfasfasdf'")
         else:
             self.fail("TestLoader.loadTestsFromNames failed to raise ImportError")
 
diff --git a/Python/import.c b/Python/import.c
index e5cb627..6594447 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1431,7 +1431,7 @@
             goto error;
         if (Py_VerboseFlag)
             PySys_FormatStderr("import %U # from %R\n",
-                name, pathname);
+                               name, pathname);
         if (cpathname != NULL) {
             PyObject *ro = PySys_GetObject("dont_write_bytecode");
             if (ro == NULL || !PyObject_IsTrue(ro))
@@ -1517,8 +1517,8 @@
     if (m == NULL)
         return NULL;
     if (Py_VerboseFlag)
-        PySys_FormatStderr("import %U # directory %U\n",
-            name, pathname);
+        PySys_FormatStderr("import %U # directory %R\n",
+                           name, pathname);
     file = get_sourcefile(pathname);
     if (file == NULL)
         return NULL;
@@ -1875,7 +1875,7 @@
         Py_DECREF(prefix);
     }
     PyErr_Format(PyExc_ImportError,
-                 "No module named %U", name);
+                 "No module named %R", name);
     return NULL;
 }
 
@@ -2366,7 +2366,7 @@
 
     default:
         PyErr_Format(PyExc_ImportError,
-                     "Don't know how to import %U (type code %d)",
+                     "Don't know how to import %R (type code %d)",
                       name, type);
         m = NULL;
 
@@ -3251,7 +3251,7 @@
         return NULL;
     if (m != PyDict_GetItem(modules, nameobj)) {
         PyErr_Format(PyExc_ImportError,
-                     "reload(): module %U not in sys.modules",
+                     "reload(): module %R not in sys.modules",
                      nameobj);
         Py_DECREF(nameobj);
         return NULL;
@@ -3286,7 +3286,7 @@
         parent = PyDict_GetItem(modules, parentname);
         if (parent == NULL) {
             PyErr_Format(PyExc_ImportError,
-                "reload(): parent %U not in sys.modules",
+                "reload(): parent %R not in sys.modules",
                  parentname);
             Py_DECREF(parentname);
             goto error;
