diff --git a/Net/ChaChing/WebSocket/Client.php b/Net/ChaChing/WebSocket/Client.php
index <HASH>..<HASH> 100644
--- a/Net/ChaChing/WebSocket/Client.php
+++ b/Net/ChaChing/WebSocket/Client.php
@@ -277,26 +277,6 @@ class Net_ChaChing_WebSocket_Client
             );
         }
 
-        // set socket receive timeout
-        $sec  = intval($this->timeout / 1000);
-        $usec = ($this->timeout % 1000) * 1000;
-
-        $result = socket_set_option(
-            $this->socket,
-            SOL_SOCKET,
-            SO_RCVTIMEO,
-            array('sec' => $sec, 'usec' => $usec)
-        );
-
-        if (!$result) {
-            throw new Net_ChaChing_WebSocket_Client_Exception(
-                sprintf(
-                    'Unable to set socket timeout: %s',
-                    socket_strerror(socket_last_error())
-                )
-            );
-        }
-
         // set socket non-blocking for connect
         socket_set_nonblock($this->socket);
 
@@ -314,6 +294,10 @@ class Net_ChaChing_WebSocket_Client
             socket_clear_error($this->socket);
             if ($errno === SOCKET_EINPROGRESS) {
 
+                // get connect timeout parts
+                $sec  = intval($this->timeout / 1000);
+                $usec = ($this->timeout % 1000) * 1000;
+
                 $write  = array($this->socket);
                 $result = socket_select(
                     $read = null,
Don't set SO_RCVTIMEO on socket. We only read in select loops with explicit timeouts.