diff --git a/Lib/test/test_raise.py b/Lib/test/test_raise.py
index 0e19972..27a5cbc 100644
--- a/Lib/test/test_raise.py
+++ b/Lib/test/test_raise.py
@@ -37,6 +37,18 @@
         else:
             self.fail("No exception raised")
 
+    def test_erroneous_exception(self):
+        class MyException(Exception):
+            def __init__(self):
+                raise RuntimeError()
+
+        try:
+            raise MyException
+        except RuntimeError:
+            pass
+        else:
+            self.fail("No exception raised")
+
 
 class TestCause(unittest.TestCase):
     def test_invalid_cause(self):
@@ -64,6 +76,18 @@
         else:
             self.fail("No exception raised")
 
+    def test_erroneous_cause(self):
+        class MyException(Exception):
+            def __init__(self):
+                raise RuntimeError()
+
+        try:
+            raise IndexError from MyException
+        except RuntimeError:
+            pass
+        else:
+            self.fail("No exception raised")
+
 
 class TestTraceback(unittest.TestCase):
     def test_sets_traceback(self):
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index cbc41e8..ce536fd 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -28,7 +28,7 @@
         return NULL;
     /* the dict is created on the fly in PyObject_GenericSetAttr */
     self->dict = NULL;
-    self->traceback = NULL;
+    self->traceback = self->cause = self->context = NULL;
 
     self->args = PyTuple_New(0);
     if (!self->args) {
@@ -58,6 +58,8 @@
     Py_CLEAR(self->dict);
     Py_CLEAR(self->args);
     Py_CLEAR(self->traceback);
+    Py_CLEAR(self->cause);
+    Py_CLEAR(self->context);
     return 0;
 }
 
@@ -75,6 +77,8 @@
     Py_VISIT(self->dict);
     Py_VISIT(self->args);
     Py_VISIT(self->traceback);
+    Py_VISIT(self->cause);
+    Py_VISIT(self->context);
     return 0;
 }
 
diff --git a/Python/ceval.c b/Python/ceval.c
index 24d4dec..fa08fe6 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2967,7 +2967,6 @@
 		/* Not something you can raise.  You get an exception
 		   anyway, just not what you specified :-) */
         Py_DECREF(exc);
-        Py_XDECREF(cause);
 		PyErr_SetString(PyExc_TypeError,
                                 "exceptions must derive from BaseException");
 		goto raise_error;
@@ -2980,12 +2979,12 @@
             fixed_cause = PyObject_CallObject(cause, NULL);
             if (fixed_cause == NULL)
                 goto raise_error;
+            Py_DECREF(cause);
         }
         else if (PyExceptionInstance_Check(cause)) {
             fixed_cause = cause;
         }
         else {
-            Py_DECREF(cause);
             PyErr_SetString(PyExc_TypeError,
                             "exception causes must derive from BaseException");
             goto raise_error;
@@ -3000,6 +2999,7 @@
 	Py_XDECREF(value);
 	Py_XDECREF(type);
 	Py_XDECREF(tb);
+	Py_XDECREF(cause);
 	return WHY_EXCEPTION;
 }
 
