diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 1b274b36579897c68430a3a89ef9b0593e7fd08e..3a8c0e7695cdcd0ed8eb6fb6bfef5801634584f7 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -669,14 +669,14 @@ static void close_request(http_session_t * session)
 	uint i;
 	
 	
-	if(session->req.cgi_heads_size)  {
+	if(session->req.cgi_heads_size && session->req.cgi_heads!=NULL)  {
 		for(i=0;i<session->req.cgi_heads_size;i++)
 			FREE_AND_NULL(session->req.cgi_heads[i]);
 		FREE_AND_NULL(session->req.cgi_heads);
 		session->req.cgi_heads_size=0;
 	}
 	
-	if(session->req.cgi_env_size)  {
+	if(session->req.cgi_env_size && session->req.cgi_env!=NULL)  {
 		for(i=0;i<session->req.cgi_env_size;i++)
 			FREE_AND_NULL(session->req.cgi_env[i]);
 		FREE_AND_NULL(session->req.cgi_env);