Revert accidental checkins from last commit.
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 103a662..3d79383 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -38,31 +38,18 @@
     /* the dict is created on the fly in PyObject_GenericSetAttr */
     self->message = self->dict = NULL;
 
-    if (!args) {
-        /* MemoryError instantiation */
-        args = PyTuple_New(0);
-        if (!args) {
-            Py_DECREF(self);
-            return NULL;
-        }
-    } else {
-        Py_INCREF(args);
-    }
-    
-    self->args = args;
-
-    /* Since the args can be overwritten in __init__, we have to store
-       the original args somewhere for pickling. */
-    if (PyObject_SetAttrString((PyObject *)self, "__newargs__", args) < 0) {
+    self->args = PyTuple_New(0);
+    if (!self->args) {
         Py_DECREF(self);
         return NULL;
     }
-   
+
     self->message = PyString_FromString("");
     if (!self->message) {
         Py_DECREF(self);
         return NULL;
     }
+
     return (PyObject *)self;
 }
 
@@ -160,23 +147,10 @@
 static PyObject *
 BaseException_reduce(PyBaseExceptionObject *self)
 {
-    PyObject *result;
-    PyObject *newargs = PyObject_GetAttrString((PyObject *)self, "__newargs__");
-    if (!newargs) {
-        if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
-            PyErr_SetString(PyExc_AttributeError,
-                            "To pickle exceptions via BaseException.__reduce__, "
-                            "you need to set the __newargs__ attribute in your "
-                            "custom __new__ method.");
-        }
-        return NULL;
-    }
     if (self->args && self->dict)
-        result = PyTuple_Pack(3, Py_Type(self), newargs, self->dict);
+        return PyTuple_Pack(3, Py_Type(self), self->args, self->dict);
     else
-        result = PyTuple_Pack(2, Py_Type(self), newargs);
-    Py_DECREF(newargs);
-    return result;
+        return PyTuple_Pack(2, Py_Type(self), self->args);
 }
 
 /*