diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index 16d3c6550e51f4ec27d4157bedf97aa167fdab2d..d9e182cc79be83777d0a9057b7018ff0451f690f 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -5007,7 +5007,9 @@ static int unload_module(void)
 		return -1;
 	}
 
-	close(mgcpsock);
+	if (mgcpsock > -1) {
+		close(mgcpsock);
+	}
 	ast_rtp_glue_unregister(&mgcp_rtp_glue);
 	ast_cli_unregister_multiple(cli_mgcp, sizeof(cli_mgcp) / sizeof(struct ast_cli_entry));
 	ast_sched_context_destroy(sched);