diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index d25bd7f..f53eade 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -622,6 +622,7 @@
 static int
 internal_setblocking(PySocketSockObject *s, int block)
 {
+    int result = -1;
 #ifdef MS_WINDOWS
     u_long arg;
 #endif
@@ -641,34 +642,39 @@
 #if (defined(HAVE_SYS_IOCTL_H) && defined(FIONBIO))
     block = !block;
     if (ioctl(s->sock_fd, FIONBIO, (unsigned int *)&block) == -1)
-        goto error;
+        goto done;
 #else
     delay_flag = fcntl(s->sock_fd, F_GETFL, 0);
     if (delay_flag == -1)
-        goto error;
+        goto done;
     if (block)
         new_delay_flag = delay_flag & (~O_NONBLOCK);
     else
         new_delay_flag = delay_flag | O_NONBLOCK;
     if (new_delay_flag != delay_flag)
         if (fcntl(s->sock_fd, F_SETFL, new_delay_flag) == -1)
-            goto error;
+            goto done;
 #endif
 #else /* MS_WINDOWS */
     arg = !block;
     if (ioctlsocket(s->sock_fd, FIONBIO, &arg) != 0)
-        goto error;
+        goto done;
 #endif /* MS_WINDOWS */
+
+    result = 0;
+
+  done:
     Py_END_ALLOW_THREADS
 
-    return 0;
-  error:
+    if (result) {
 #ifndef MS_WINDOWS
-    PyErr_SetFromErrno(PyExc_OSError);
+        PyErr_SetFromErrno(PyExc_OSError);
 #else
-    PyErr_SetExcFromWindowsErr(PyExc_OSError, WSAGetLastError());
+        PyErr_SetExcFromWindowsErr(PyExc_OSError, WSAGetLastError());
 #endif
-    return -1;
+    }
+
+    return result;
 }
 
 static int
