diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index b5525e3..b043934 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -12,6 +12,12 @@
     PyObject *doc, *consts, *module;
     static PyObject *__name__ = NULL;
 
+    if (__name__ == NULL) {
+        __name__ = PyUnicode_InternFromString("__name__");
+        if (__name__ == NULL)
+            return NULL;
+    }
+
     op = PyObject_GC_New(PyFunctionObject, &PyFunction_Type);
     if (op == NULL)
         return NULL;
@@ -26,6 +32,7 @@
     op->func_defaults = NULL; /* No default arguments */
     op->func_kwdefaults = NULL; /* No keyword only defaults */
     op->func_closure = NULL;
+
     consts = ((PyCodeObject *)code)->co_consts;
     if (PyTuple_Size(consts) >= 1) {
         doc = PyTuple_GetItem(consts, 0);
@@ -36,21 +43,13 @@
         doc = Py_None;
     Py_INCREF(doc);
     op->func_doc = doc;
+
     op->func_dict = NULL;
     op->func_module = NULL;
     op->func_annotations = NULL;
 
     /* __module__: If module name is in globals, use it.
-       Otherwise, use None.
-    */
-    if (!__name__) {
-        __name__ = PyUnicode_InternFromString("__name__");
-        if (!__name__) {
-            Py_DECREF(op);
-            return NULL;
-        }
-    }
-
+       Otherwise, use None. */
     module = PyDict_GetItem(globals, __name__);
     if (module) {
         Py_INCREF(module);
