diff --git a/Python/ceval.c b/Python/ceval.c
index c7fa697..fb1c0e7 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -783,13 +783,33 @@
 				u = w;
 				w = gettupleitem(u, 0);
 				INCREF(w);
+				INCREF(w);
 				DECREF(u);
 			}
-			if (!is_stringobject(w))
-				err_setstr(TypeError,
-					"exceptions must be strings");
-			else
+			if (is_stringobject(w)) {
 				err_setval(w, v);
+			} else if (is_classobject(w)) {
+				if (!is_instanceobject(v)
+				    || !issubclass((object*)((instanceobject*)v)->in_class,
+						   w))
+					err_setstr(TypeError,
+						   "a class exception must have a value that is an instance of the class");
+				else
+					err_setval(w,v);
+			} else if (is_instanceobject(w)) {
+				if (v != None)
+					err_setstr(TypeError,
+						   "an instance exception may not have a separate value");
+				else {
+					DECREF(v);
+					v = w;
+					w = (object*) ((instanceobject*)w)->in_class;
+					INCREF(w);
+					err_setval(w, v);
+				}
+			} else
+				err_setstr(TypeError,
+					"exceptions must be strings, classes, or instances");
 			DECREF(v);
 			DECREF(w);
 			why = WHY_EXCEPTION;
@@ -2393,6 +2413,8 @@
 		}
 		return 0;
 	}
+	if (is_classobject(v) && is_classobject(err))
+		return issubclass(err, v);
 	return err == v;
 }
 
