diff --git a/httprl.module b/httprl.module
index 7a27acb..f82f3b4 100644
--- a/httprl.module
+++ b/httprl.module
@@ -246,7 +246,6 @@ function httprl_request($url, $options = array()) {
   }
 
   $flags = STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT;
-
   // Workaround for PHP bug with STREAM_CLIENT_ASYNC_CONNECT and SSL
   // https://bugs.php.net/bug.php?id=48182 - Fixed in PHP 5.2.11 and 5.3.1
   if ($uri['scheme'] == 'https') {
@@ -258,7 +257,6 @@ function httprl_request($url, $options = array()) {
     }
     $flags = $https_flags;
   }
-
   if (empty($options['context'])) {
     $fp = @stream_socket_client($socket, $errno, $errstr, $options['timeout'], $flags);
   }
@@ -266,6 +264,16 @@ function httprl_request($url, $options = array()) {
     // Create a stream with context. Allows verification of a SSL certificate.
     $fp = @stream_socket_client($socket, $errno, $errstr, $options['timeout'], $flags, $options['context']);
   }
+  // Try one last time without using STREAM_CLIENT_ASYNC_CONNECT.
+  if (!$fp && $flags === STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT) {
+    if (empty($options['context'])) {
+      $fp = @stream_socket_client($socket, $errno, $errstr, $options['timeout'], STREAM_CLIENT_CONNECT);
+    }
+    else {
+      // Create a stream with context. Allows verification of a SSL certificate.
+      $fp = @stream_socket_client($socket, $errno, $errstr, $options['timeout'], STREAM_CLIENT_CONNECT, $options['context']);
+    }
+  }
 
   // Make sure the socket opened properly.
   if (!$fp) {
