diff --git a/Framework/LiveData/src/LoadDAE/isisds_command.cpp b/Framework/LiveData/src/LoadDAE/isisds_command.cpp
index 790c2391b29ba8394be8f545f77d2e4e4fa1eeb6..201cc1f771a011e567e9986d7ba799b34c9effdf 100644
--- a/Framework/LiveData/src/LoadDAE/isisds_command.cpp
+++ b/Framework/LiveData/src/LoadDAE/isisds_command.cpp
@@ -145,8 +145,14 @@ SOCKET isisds_send_open(const char *host, ISISDSAccessMode access_type,
   if (s == INVALID_SOCKET) {
     return INVALID_SOCKET;
   }
-  setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&setkeepalive,
-             sizeof(setkeepalive));
+
+  int zero = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&setkeepalive,
+                       sizeof(setkeepalive));
+  if (0 != zero) {
+    closesocket(s);
+    return INVALID_SOCKET;
+  }
+
   if (connect(s, (struct sockaddr *)&address, sizeof(address)) == -1) {
     closesocket(s);
     return INVALID_SOCKET;