Update a comment about why the __module__ can sometime be NULL.
Initialize last_string and arg member of Unpickler.
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index 4976cc5..bda8efd 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -691,9 +691,9 @@
 
     module_name = PyObject_GetAttr(global, module_str);
 
-    /* In some rare cases (e.g., random.getrandbits), __module__ can be
-       None. If it is so, then search sys.modules for the module of
-       global.  */
+    /* In some rare cases (e.g., bound methods of extension types),
+       __module__ can be None. If it is so, then search sys.modules
+       for the module of global.  */
     if (module_name == Py_None) {
         Py_DECREF(module_name);
         goto search;
@@ -4447,6 +4447,9 @@
     if (self->memo == NULL)
         return -1;
 
+    self->last_string = NULL;
+    self->arg = NULL;
+
     return 0;
 }