diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index 27b176aeb6dba7593ffcd256e0a3356a5b51e3f2..c409fe968f8894a6337092ff9ba2eb458ade5f8a 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -191,8 +191,14 @@ syslog_syslog(PyObject * self, PyObject * args)
          */
         if ((openargs = PyTuple_New(0))) {
             PyObject *openlog_ret = syslog_openlog(self, openargs, NULL);
-            Py_XDECREF(openlog_ret);
             Py_DECREF(openargs);
+            if (openlog_ret == NULL) {
+                return NULL;
+            }
+            Py_DECREF(openlog_ret);
+        }
+        else {
+            return NULL;
         }
     }