diff --git a/apps/app_directory.c b/apps/app_directory.c
index 8e8f624552e41af51cb46cee23b66831962d8779..199888b237d00623967be0457f7e32ece44ef97b 100755
--- a/apps/app_directory.c
+++ b/apps/app_directory.c
@@ -37,7 +37,8 @@ static char *descrip =
 "discovered from  voicemail.conf. The  context  argument  is  required,  and\n"
 "specifies  the  context  in  which to interpret the extensions. Returns 0\n"
 "unless the user hangs up. It  also sets up the channel on exit to enter the\n"
-"extension the user selected.\n";
+"extension the user selected.  Please note that the context must be the same\n"
+"as the section in voicemail.conf that the mailbox is processed from as well.\n";
 
 /* For simplicity, I'm keeping the format compatible with the voicemail config,
    but i'm open to suggestions for isolating it */
@@ -199,10 +200,15 @@ ahem:
 				ast_stopstream(chan);
 				if (res > -1) {
 					if (res == '1') {
-						strncpy(chan->exten, v->name, sizeof(chan->exten)-1);
-						chan->priority = 0;
-						strncpy(chan->context, context, sizeof(chan->context)-1);
-						res = 0;
+						if (ast_exists_extension(chan, context, v->name, 1, chan->callerid)) {
+							strncpy(chan->exten, v->name, sizeof(chan->exten)-1);
+							chan->priority = 0;
+							strncpy(chan->context, context, sizeof(chan->context)-1);
+							res = 0;
+						} else {
+							ast_log(LOG_WARNING, "Can't find extension '%s' in context '%s'.  Did you pass the wrong context to Directory?\n", v->name, context);
+							res = -1;
+						}
 						break;
 					} else if (res == '*') {
 						res = 0;