- Issue #3537: Fix an assertion failure when an empty but presized dict
  object was stored in the freelist.
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 038f373..cc083f1 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -241,6 +241,10 @@
 		_Py_NewReference((PyObject *)mp);
 		if (mp->ma_fill) {
 			EMPTY_TO_MINSIZE(mp);
+		} else {
+			/* At least set ma_table and ma_mask; these are wrong
+			   if an empty but presized dict is added to freelist */
+			INIT_NONZERO_DICT_SLOTS(mp);
 		}
 		assert (mp->ma_used == 0);
 		assert (mp->ma_table == mp->ma_smalltable);