diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc
index 378c44773df311720e8f3d16ee6ba0429ebbeb15..87b85a4fa42f4d4a1838ceda749fee940ddbe0df 100644
--- a/channels/chan_vpb.cc
+++ b/channels/chan_vpb.cc
@@ -2633,14 +2633,13 @@ static int unload_module(void)
 
 	if (bridges) {
 		ast_mutex_lock(&bridge_lock);
-		memset(bridges, 0, sizeof bridges);
-		ast_mutex_unlock(&bridge_lock);
-		ast_mutex_destroy(&bridge_lock);
 		for (int i = 0; i < max_bridges; i++) {
 			ast_mutex_destroy(&bridges[i].lock);
 			ast_cond_destroy(&bridges[i].cond);
 		}
 		ast_free(bridges);
+		bridges = NULL;
+		ast_mutex_unlock(&bridge_lock);
 	}
 
 	ast_format_cap_destroy(vpb_tech.capabilities);