diff --git a/ChangeLog b/ChangeLog
index 5ecdeae202a7b88905bd03177a03cbd16673a7a1..b4af88a13e6a2f77ef0c5c35fac6424efd350f24 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2005-11-11  Kevin P. Fleming  <kpfleming@digium.com>
 
 	* apps/app_voicemail.c (forward_message): correct bugs in message forwarding (issue #5718)
+	(copy_message): use correct path for locking (issue #5704)
 
 	* apps/app_dial.c (wait_for_answer): correct flag copying for automon feature (issue #5720)
 
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index c8a694c39761bf974b16f923bc77d23da0fa801b..238623fed1f437703f8abfb88e47af519c926ef9 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -2285,7 +2285,7 @@ static int copy_message(struct ast_channel *chan, struct ast_vm_user *vmu, int i
 	make_dir(fromdir, sizeof(fromdir), vmu->context, vmu->mailbox, frombox);
 	make_file(frompath, sizeof(frompath), fromdir, msgnum);
 
-	if (vm_lock_path(topath))
+	if (vm_lock_path(todir))
 		return ERROR_LOCK_PATH;
 
 	recipmsgnum = 0;
@@ -2300,7 +2300,7 @@ static int copy_message(struct ast_channel *chan, struct ast_vm_user *vmu, int i
 	} else {
 		ast_log(LOG_ERROR, "Recipient mailbox %s@%s is full\n", recip->mailbox, recip->context);
 	}
-	ast_unlock_path(topath);
+	ast_unlock_path(todir);
 	notify_new_message(chan, recip, recipmsgnum, duration, fmt, chan->cid.cid_num, chan->cid.cid_name);
 	
 	return 0;