diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 4f8417a..ada1481 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -248,14 +248,15 @@
 	}
 
 	initmain(); /* Module __main__ */
-	if (!Py_NoSiteFlag)
-		initsite(); /* Module site */
 
 	/* auto-thread-state API, if available */
 #ifdef WITH_THREAD
 	_PyGILState_Init(interp, tstate);
 #endif /* WITH_THREAD */
 
+	if (!Py_NoSiteFlag)
+		initsite(); /* Module site */
+
 	if ((p = Py_GETENV("PYTHONIOENCODING")) && *p != '\0') {
 		p = icodeset = codeset = strdup(p);
 		free_codeset = 1;
@@ -284,8 +285,13 @@
 				loc_codeset = strdup(loc_codeset);
 				Py_DECREF(enc);
 			} else {
-				loc_codeset = NULL;
-				PyErr_Clear();
+				if (PyErr_ExceptionMatches(PyExc_LookupError)) {
+					PyErr_Clear();
+					loc_codeset = NULL;
+				} else {
+					PyErr_Print();
+					exit(1);
+				}
 			}
 		} else
 			loc_codeset = NULL;
@@ -704,20 +710,12 @@
 static void
 initsite(void)
 {
-	PyObject *m, *f;
+	PyObject *m;
 	m = PyImport_ImportModule("site");
 	if (m == NULL) {
-		f = PySys_GetObject("stderr");
-		if (Py_VerboseFlag) {
-			PyFile_WriteString(
-				"'import site' failed; traceback:\n", f);
-			PyErr_Print();
-		}
-		else {
-			PyFile_WriteString(
-			  "'import site' failed; use -v for traceback\n", f);
-			PyErr_Clear();
-		}
+		PyErr_Print();
+		Py_Finalize();
+		exit(1);
 	}
 	else {
 		Py_DECREF(m);
@@ -1546,6 +1544,8 @@
 	char *msg = NULL;
 	errtype = PyExc_SyntaxError;
 	switch (err->error) {
+	case E_ERROR:
+		return;
 	case E_SYNTAX:
 		errtype = PyExc_IndentationError;
 		if (err->expected == INDENT)
