diff --git a/src/buffer.c b/src/buffer.c
index 31f902d..29cfb8a 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1899,7 +1899,10 @@
     if ((starting == 0 || test_autochdir)
 	    && curbuf->b_ffname != NULL
 	    && vim_chdirfile(curbuf->b_ffname, "auto") == OK)
+    {
 	shorten_fnames(TRUE);
+	last_chdir_reason = "autochdir";
+    }
 }
 #endif
 
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 052f230..aae34f9 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7390,6 +7390,7 @@
 
 	if (dir_differs)
 	{
+	    last_chdir_reason = NULL;
 	    if (scope == CDSCOPE_WINDOW)
 		acmd_fname = (char_u *)"window";
 	    else if (scope == CDSCOPE_TABPAGE)
@@ -7453,7 +7454,9 @@
 	{
 	    char *context = "global";
 
-	    if (curwin->w_localdir != NULL)
+	    if (last_chdir_reason != NULL)
+		context = last_chdir_reason;
+	    else if (curwin->w_localdir != NULL)
 		context = "window";
 	    else if (curtab->tp_localdir != NULL)
 		context = "tabpage";
diff --git a/src/globals.h b/src/globals.h
index 5c54130..90998d8 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -832,6 +832,7 @@
 #if defined(FEAT_AUTOCHDIR)
 EXTERN int	test_autochdir INIT(= FALSE);
 #endif
+EXTERN char	*last_chdir_reason INIT(= NULL);
 #if defined(EXITFREE)
 EXTERN int	entered_free_all_mem INIT(= FALSE);
 				// TRUE when in or after free_all_mem()
diff --git a/src/main.c b/src/main.c
index 450fc12..0d77778 100644
--- a/src/main.c
+++ b/src/main.c
@@ -275,7 +275,8 @@
 	 * Hint: to avoid this when typing a command use a forward slash.
 	 * If the cd fails, it doesn't matter.
 	 */
-	(void)vim_chdirfile(params.fname, "drop");
+	if (vim_chdirfile(params.fname, "drop") == OK)
+	    last_chdir_reason = "drop";
 	if (start_dir != NULL)
 	    mch_dirname(start_dir, MAXPATHL);
     }
diff --git a/src/netbeans.c b/src/netbeans.c
index 5bd36a4..003cc53 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -2656,7 +2656,10 @@
 
     nb_send(buffer, "netbeans_file_opened");
     if (p_acd && vim_chdirfile(bufp->b_ffname, "auto") == OK)
+    {
+	last_chdir_reason = "netbeans";
 	shorten_fnames(TRUE);
+    }
 }
 
 /*
diff --git a/src/os_win32.c b/src/os_win32.c
index 73af6a1..a8062a8 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -7783,8 +7783,9 @@
     if (curwin->w_arg_idx == 0 && curbuf->b_fname == NULL)
     {
 	do_cmdline_cmd((char_u *)":rewind");
-	if (GARGCOUNT == 1 && used_file_full_path)
-	    (void)vim_chdirfile(alist_name(&GARGLIST[0]), "drop");
+	if (GARGCOUNT == 1 && used_file_full_path
+		&& vim_chdirfile(alist_name(&GARGLIST[0]), "drop") == OK)
+	    last_chdir_reason = "drop";
     }
 
     set_alist_count();
diff --git a/src/testdir/test_autochdir.vim b/src/testdir/test_autochdir.vim
index d36d326..8a78b0d 100644
--- a/src/testdir/test_autochdir.vim
+++ b/src/testdir/test_autochdir.vim
@@ -25,4 +25,33 @@
   call delete('samples/Xtest')
 endfunc
 
+func Test_verbose_pwd()
+  let cwd = getcwd()
+  call test_autochdir()
+
+  edit global.txt
+  call assert_match('\[global\].*testdir$', execute('verbose pwd'))
+
+  call mkdir('Xautodir')
+  split Xautodir/local.txt
+  lcd Xautodir
+  call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd'))
+
+  set acd
+  wincmd w
+  call assert_match('\[autochdir\].*testdir$', execute('verbose pwd'))
+  wincmd w
+  call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd'))
+  set noacd
+  call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd'))
+  wincmd w
+  call assert_match('\[global\].*testdir', execute('verbose pwd'))
+  wincmd w
+  call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd'))
+
+  bwipe!
+  call chdir(cwd)
+  call delete('Xautodir', 'rf')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index ea1644d..69193a6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3617,
+/**/
     3616,
 /**/
     3615,
diff --git a/src/window.c b/src/window.c
index 5473aab..3f99681 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4873,7 +4873,10 @@
 	    dirname = curtab->tp_localdir;
 
 	if (mch_chdir((char *)dirname) == 0)
+	{
+	    last_chdir_reason = NULL;
 	    shorten_fnames(TRUE);
+	}
     }
     else if (globaldir != NULL)
     {
@@ -4881,6 +4884,7 @@
 	// directory: Change to the global directory.
 	vim_ignored = mch_chdir((char *)globaldir);
 	VIM_CLEAR(globaldir);
+	last_chdir_reason = NULL;
 	shorten_fnames(TRUE);
     }
 }
