_PyBuiltin_Init():  For clarity, macroize this purely repetitive code.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index ea9ae63..0c285f6 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1837,58 +1837,33 @@
 	if (mod == NULL)
 		return NULL;
 	dict = PyModule_GetDict(mod);
-	if (PyDict_SetItemString(dict, "None", Py_None) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "Ellipsis", Py_Ellipsis) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "NotImplemented",
-				 Py_NotImplemented) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "classmethod",
-				 (PyObject *) &PyClassMethod_Type) < 0)
-		return NULL;
+
+#define SETBUILTIN(NAME, OBJECT) \
+	if (PyDict_SetItemString(dict, NAME, (PyObject *)OBJECT) < 0) \
+		return NULL
+
+	SETBUILTIN("None",		Py_None);
+	SETBUILTIN("Ellipsis",		Py_Ellipsis);
+	SETBUILTIN("NotImplemented",	Py_NotImplemented);
+	SETBUILTIN("classmethod",	&PyClassMethod_Type);
 #ifndef WITHOUT_COMPLEX
-	if (PyDict_SetItemString(dict, "complex",
-				 (PyObject *) &PyComplex_Type) < 0)
-		return NULL;
+	SETBUILTIN("complex",		&PyComplex_Type);
 #endif
-	if (PyDict_SetItemString(dict, "dictionary",
-				 (PyObject *) &PyDict_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "float",
-				 (PyObject *) &PyFloat_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "property",
-				 (PyObject *) &PyProperty_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "int", (PyObject *) &PyInt_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "list", (PyObject *) &PyList_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "long", (PyObject *) &PyLong_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "object",
-				 (PyObject *) &PyBaseObject_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "staticmethod",
-				 (PyObject *) &PyStaticMethod_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "str", (PyObject *) &PyString_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "super",
-				 (PyObject *) &PySuper_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "tuple",
-				 (PyObject *) &PyTuple_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "type", (PyObject *) &PyType_Type) < 0)
-		return NULL;
-	if (PyDict_SetItemString(dict, "file", (PyObject *) &PyFile_Type) < 0)
-		return NULL;
+	SETBUILTIN("dictionary",	&PyDict_Type);
+	SETBUILTIN("float",		&PyFloat_Type);
+	SETBUILTIN("property",		&PyProperty_Type);
+	SETBUILTIN("int",		&PyInt_Type);
+	SETBUILTIN("list",		&PyList_Type);
+	SETBUILTIN("long",		&PyLong_Type);
+	SETBUILTIN("object",		&PyBaseObject_Type);
+	SETBUILTIN("staticmethod",	&PyStaticMethod_Type);
+	SETBUILTIN("str",		&PyString_Type);
+	SETBUILTIN("super",		&PySuper_Type);
+	SETBUILTIN("tuple",		&PyTuple_Type);
+	SETBUILTIN("type",		&PyType_Type);
+	SETBUILTIN("file",		&PyFile_Type);
 #ifdef Py_USING_UNICODE
-	if (PyDict_SetItemString(dict, "unicode",
-				 (PyObject *) &PyUnicode_Type) < 0)
-		return NULL;
+	SETBUILTIN("unicode",		&PyUnicode_Type);
 #endif
 	debug = PyInt_FromLong(Py_OptimizeFlag == 0);
 	if (PyDict_SetItemString(dict, "__debug__", debug) < 0) {
@@ -1898,6 +1873,7 @@
 	Py_XDECREF(debug);
 
 	return mod;
+#undef SETBUILTIN
 }
 
 /* Helper for filter(): filter a tuple through a function */