diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 2d7b1442ee7af7c9d70f9a58d978bc688a26b1f1..4cca3156eb2eb5e36f9d805f0b3a56fda5be2e8f 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -9584,14 +9584,21 @@ static struct ast_vm_user *find_or_create(const char *context, const char *box)
 	struct ast_vm_user *vmu;
 
 	AST_LIST_TRAVERSE(&users, vmu, list) {
-		if (ast_test_flag((&globalflags), VM_SEARCH) && !strcasecmp(box, vmu->mailbox))
-			break;
-		if (context && (!strcasecmp(context, vmu->context)) && (!strcasecmp(box, vmu->mailbox)))
-			break;
+		if (ast_test_flag((&globalflags), VM_SEARCH) && !strcasecmp(box, vmu->mailbox)) {
+			if (strcasecmp(vmu->context, context)) {
+				ast_log(LOG_WARNING, "\nIt has been detected that you have defined mailbox '%s' in separate\
+						\n\tcontexts and that you have the 'searchcontexts' option on. This type of\
+						\n\tconfiguration creates an ambiguity that you likely do not want. Please\
+						\n\tamend your voicemail.conf file to avoid this situation.\n", box);
+			}
+			ast_log(LOG_WARNING, "Ignoring duplicated mailbox %s\n", box);
+			return NULL;
+		}
+		if (!strcasecmp(context, vmu->context) && !strcasecmp(box, vmu->mailbox)) {
+			ast_log(LOG_WARNING, "Ignoring duplicated mailbox %s in context %s\n", box, context);
+			return NULL;
+		}
 	}
-
-	if (vmu)
-		return vmu;
 	
 	if (!(vmu = ast_calloc(1, sizeof(*vmu))))
 		return NULL;
diff --git a/configs/voicemail.conf.sample b/configs/voicemail.conf.sample
index 06314bcfcd24075fc739ff5100fc418a18a72447..4f792e522b26730efce8c79a4423b9e3b0cb4534 100644
--- a/configs/voicemail.conf.sample
+++ b/configs/voicemail.conf.sample
@@ -232,6 +232,9 @@ sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside
 ; searchcontexts=yes	; Current default behavior is to search only the default context
 			; if one is not specified.  The older behavior was to search all contexts.
 			; This option restores the old behavior [DEFAULT=no]
+			; Note: If you have this option enabled, then you will be required to have
+			; unique mailbox names across all contexts. Otherwise, an ambiguity is created
+			; since it is impossible to know which mailbox to retrieve when one is requested.
 ; callback=fromvm 	; Context to call back from  
 			;     if not listed, calling the sender back will not be permitted
 ; exitcontext=fromvm    ; Context to go to on user exit such as * or 0