--- /dev/null
+Index: /pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c\r
+===================================================================\r
+--- a/pjlib/src/pj/ssl_sock_ossl.c (revision 5564)\r
++++ b/pjlib/src/pj/ssl_sock_ossl.c (revision 5565)\r
+@@ -145,5 +145,6 @@\r
+ SSL_STATE_NULL,\r
+ SSL_STATE_HANDSHAKING,\r
+- SSL_STATE_ESTABLISHED\r
++ SSL_STATE_ESTABLISHED,\r
++ SSL_STATE_ERROR\r
+ };\r
+ \r
+@@ -1907,4 +1908,8 @@\r
+ buf->len += size_;\r
+ \r
++ if (status != PJ_SUCCESS) {\r
++ ssock->ssl_state = SSL_STATE_ERROR;\r
++ }\r
++\r
+ ret = (*ssock->param.cb.on_data_read)(ssock, buf->data,\r
+ buf->len, status,\r
+@@ -2658,5 +2663,9 @@\r
+ /* Current cipher */\r
+ cipher = SSL_get_current_cipher(ssock->ossl_ssl);\r
+- info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF);\r
++ if (cipher) {\r
++ info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF);\r
++ } else {\r
++ info->cipher = PJ_TLS_UNKNOWN_CIPHER;\r
++ }\r
+ \r
+ /* Remote address */\r