Index: src/SSLSocket.m ================================================================== --- src/SSLSocket.m +++ src/SSLSocket.m @@ -268,14 +268,18 @@ #endif @throw e; } - if ((ret = SSL_read(ssl, buffer, (int)length)) < 0) + if ((ret = SSL_read(ssl, buffer, (int)length)) < 0) { + if (SSL_get_error(ssl, ret) == SSL_ERROR_WANT_READ) + return 0; + @throw [OFReadFailedException exceptionWithClass: [self class] stream: self requestedLength: length]; + } if (ret == 0) atEndOfStream = YES; return ret;