diff --git a/src/common/slurm_protocol_socket_implementation.c b/src/common/slurm_protocol_socket_implementation.c
index 6705d1dc27476fcdd39779f39b929f4fcb750324..a07f5b7da2828bb38bde8f3550a39d5248905294 100644
--- a/src/common/slurm_protocol_socket_implementation.c
+++ b/src/common/slurm_protocol_socket_implementation.c
@@ -592,8 +592,10 @@ extern int _slurm_connect (int __fd, struct sockaddr const * __addr,
 			if (ufds.revents & POLLERR) {
 				int err = 0;
 				socklen_t size;
-				getsockopt(__fd, SOL_SOCKET, SO_ERROR, &err, &size);
-				slurm_seterrno(err);
+				if (getsockopt(__fd, SOL_SOCKET, SO_ERROR, 
+						&err, &size) == 0) {
+					slurm_seterrno(err);
+				}
 				debug2("connect failure: %m");
 			} else
 				rc = 0;