diff --git a/libipc/socket_inline.h b/libipc/socket_inline.h
index 89e6ba1ecb49cc18ce3ce9a04a078817cc08b0db..52fe1d453750b98ca8038681706d13b2808600cb 100644
--- a/libipc/socket_inline.h
+++ b/libipc/socket_inline.h
@@ -179,7 +179,7 @@ static inline int __internal_connect(int fd, const struct sockaddr *addr,
     start = get_time();
   }
   int ret = __real_connect(fd, addr, addrlen);
-  if (is_reg) {
+  if (is_reg && ret != -1) {
     end = get_time();
     set_time(fd, start, end);
   }