diff --git a/main/pbx.c b/main/pbx.c
index ec96344cbb2b0a29b29e1e8b475abab31facb3a0..4db89f803ab753937945818afac1c21b24e95140 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -9983,6 +9983,7 @@ static int pbx_outgoing_attempt(const char *type, struct ast_format_cap *cap, co
 			ast_cond_wait(&outgoing->cond, &outgoing->lock);
 
 			if (outgoing->dial_res != AST_DIAL_RESULT_ANSWERED) {
+				ast_mutex_unlock(&outgoing->lock);
 				/* The dial operation failed. */
 				return -1;
 			}