Fix SF bug #1669182.  Handle string exceptions even if unraisable (ie in __del__).
diff --git a/Python/errors.c b/Python/errors.c
index f31f025..bc77c3c 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -590,7 +590,11 @@
 		PyFile_WriteString("Exception ", f);
 		if (t) {
 			PyObject* moduleName;
-			char* className = PyExceptionClass_Name(t);
+			char* className = NULL;
+			if (PyExceptionClass_Check(t))
+				className = PyExceptionClass_Name(t);
+			else if (PyString_Check(t))
+				className = PyString_AS_STRING(t);
 
 			if (className != NULL) {
 				char *dot = strrchr(className, '.');