diff --git a/pbx.c b/pbx.c
index 8c12d556e2a096145ed76495082bc6eb1fafc083..a70f922fca462c436563a6f2d647863bd317ec25 100644
--- a/pbx.c
+++ b/pbx.c
@@ -5058,7 +5058,7 @@ void __ast_context_destroy(struct ast_context *con, const char *registrar)
 			   is searching through it. */
 			if (ast_mutex_lock(&tmp->lock)) {
 				ast_log(LOG_WARNING, "Unable to lock context lock\n");
-				return;
+				break;
 			}
 			if (tmpl)
 				tmpl->next = tmp->next;
@@ -5105,8 +5105,7 @@ void __ast_context_destroy(struct ast_context *con, const char *registrar)
 				tmpil = NULL;
 				continue;
 			}
-			ast_mutex_unlock(&conlock);
-			return;
+			break;
 		}
 		tmpl = tmp;
 		tmp = tmp->next;