diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e204f00539743920d929a7e29c3a23f65d285424..e8cc591a301ad963a0e118fb3a60dbe9dcd52d70 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -29450,7 +29450,7 @@ static int sip_prepare_socket(struct sip_pvt *p)
 		return s->fd;
 	}
 	if ((s->type & (AST_TRANSPORT_TCP | AST_TRANSPORT_TLS)) &&
-			s->tcptls_session) {
+			s->tcptls_session && s->tcptls_session->stream) {
 		return ast_iostream_get_fd(s->tcptls_session->stream);
 	}
 	if ((s->type & (AST_TRANSPORT_WS | AST_TRANSPORT_WSS))) {