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);
 }
 
 /*
