diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index f3342f709541cf4ff66bfd37be84f466f76041d3..6e50108e602e6a2c7aafcb933565fcc1cc725364 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -4519,8 +4519,15 @@ static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu,int box)
 	detected.
 	*/
 
+	if (vm_lock_path(vms->curdir)) {
+		ast_log(LOG_ERROR, "Could not open mailbox %s:  mailbox is locked\n", vms->curdir);
+		return -1;
+	}
+
 	last_msg = last_message_index(vmu, vms->curdir);
-	if (last_msg < 0)
+	ast_unlock_path(vms->curdir);
+
+	if (last_msg < 0) 
 		return last_msg;
 	else if (vms->lastmsg != last_msg)
 	{