diff --git a/Lib/test/test_defaultdict.py b/Lib/test/test_defaultdict.py
index 49519ab..00bd9dc 100644
--- a/Lib/test/test_defaultdict.py
+++ b/Lib/test/test_defaultdict.py
@@ -2,6 +2,7 @@
 
 import os
 import copy
+import pickle
 import tempfile
 import unittest
 from test import support
@@ -164,6 +165,13 @@
         finally:
             os.remove(tfn)
 
+    def test_pickleing(self):
+        d = defaultdict(int)
+        d[1]
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            s = pickle.dumps(d, proto)
+            o = pickle.loads(s)
+            self.assertEqual(d, o)
 
 def test_main():
     support.run_unittest(TestDefaultDict)
diff --git a/Misc/NEWS b/Misc/NEWS
index 5b5a125..a557b52 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,9 @@
 Core and Builtins
 -----------------
 
+- Issue #4170: Pickling a collections.defaultdict object would crash the
+  interpreter.
+
 - Issue #4146: Compilation on OpenBSD has been restored.
 
 - Issue #3574: compile() incorrectly handled source code encoded as Latin-1.
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 8e51420..d7a6042 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1155,6 +1155,7 @@
 	*/
 	PyObject *args;
 	PyObject *items;
+	PyObject *iter;
 	PyObject *result;
 	if (dd->default_factory == NULL || dd->default_factory == Py_None)
 		args = PyTuple_New(0);
@@ -1167,8 +1168,15 @@
 		Py_DECREF(args);
 		return NULL;
 	}
+	iter = PyObject_GetIter(items);
+	if (iter == NULL) {
+		Py_DECREF(items);
+		Py_DECREF(args);
+		return NULL;
+	}
 	result = PyTuple_Pack(5, Py_TYPE(dd), args,
-			      Py_None, Py_None, items);
+			      Py_None, Py_None, iter);
+	Py_DECREF(iter);
 	Py_DECREF(items);
 	Py_DECREF(args);
 	return result;
