diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 784b98c..eda1542 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -497,16 +497,12 @@
 static int
 fp_setreadl(struct tok_state *tok, const char* enc)
 {
-    PyObject *readline = NULL, *stream = NULL, *io = NULL, *bufobj;
+    PyObject *readline, *io, *stream;
     _Py_IDENTIFIER(open);
     _Py_IDENTIFIER(readline);
     int fd;
     long pos;
 
-    io = PyImport_ImportModuleNoBlock("io");
-    if (io == NULL)
-        goto cleanup;
-
     fd = fileno(tok->fp);
     /* Due to buffering the file offset for fd can be different from the file
      * position of tok->fp.  If tok->fp was opened in text mode on Windows,
@@ -517,30 +513,33 @@
     if (pos == -1 ||
         lseek(fd, (off_t)(pos > 0 ? pos - 1 : pos), SEEK_SET) == (off_t)-1) {
         PyErr_SetFromErrnoWithFilename(PyExc_OSError, NULL);
-        goto cleanup;
+        return 0;
     }
 
+    io = PyImport_ImportModuleNoBlock("io");
+    if (io == NULL)
+        return 0;
+
     stream = _PyObject_CallMethodId(io, &PyId_open, "isisOOO",
                     fd, "r", -1, enc, Py_None, Py_None, Py_False);
+    Py_DECREF(io);
     if (stream == NULL)
-        goto cleanup;
+        return 0;
 
     readline = _PyObject_GetAttrId(stream, &PyId_readline);
+    Py_DECREF(stream);
+    if (readline == NULL)
+        return 0;
     Py_XSETREF(tok->decoding_readline, readline);
+
     if (pos > 0) {
-        bufobj = PyObject_CallObject(readline, NULL);
-        if (bufobj == NULL) {
-            readline = NULL;
-            goto cleanup;
-        } else {
-            Py_DECREF(bufobj);
-        }
+        PyObject *bufobj = PyObject_CallObject(readline, NULL);
+        if (bufobj == NULL)
+            return 0;
+        Py_DECREF(bufobj);
     }
 
-  cleanup:
-    Py_XDECREF(stream);
-    Py_XDECREF(io);
-    return readline != NULL;
+    return 1;
 }
 
 /* Fetch the next byte from TOK. */
