diff --git a/src/Makefile b/src/Makefile
index 007c792..24aa9ca 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2016,6 +2016,7 @@
 test_arglist \
 	test_assert \
 	test_assign \
+	test_autochdir \
 	test_autocmd \
 	test_backspace_opt \
 	test_cdo \
diff --git a/src/buffer.c b/src/buffer.c
index 7c69b8e..b434d58 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1635,7 +1635,7 @@
     void
 do_autochdir(void)
 {
-    if (starting == 0
+    if ((starting == 0 || test_autochdir)
 	    && curbuf->b_ffname != NULL
 	    && vim_chdirfile(curbuf->b_ffname) == OK)
 	shorten_fnames(TRUE);
diff --git a/src/eval.c b/src/eval.c
index 6e15a55..8b67604 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -812,6 +812,7 @@
 static void f_tagfiles(typval_T *argvars, typval_T *rettv);
 static void f_tempname(typval_T *argvars, typval_T *rettv);
 static void f_test_alloc_fail(typval_T *argvars, typval_T *rettv);
+static void f_test_autochdir(typval_T *argvars, typval_T *rettv);
 static void f_test_disable_char_avail(typval_T *argvars, typval_T *rettv);
 static void f_test_garbagecollect_now(typval_T *argvars, typval_T *rettv);
 #ifdef FEAT_JOB_CHANNEL
@@ -8832,6 +8833,7 @@
 #endif
     {"tempname",	0, 0, f_tempname},
     {"test_alloc_fail",	3, 3, f_test_alloc_fail},
+    {"test_autochdir",	0, 0, f_test_autochdir},
     {"test_disable_char_avail", 1, 1, f_test_disable_char_avail},
     {"test_garbagecollect_now",	0, 0, f_test_garbagecollect_now},
 #ifdef FEAT_JOB_CHANNEL
@@ -13155,7 +13157,7 @@
     {
 	if (wp->w_localdir != NULL)
 	    rettv->vval.v_string = vim_strsave(wp->w_localdir);
-	else if(globaldir != NULL)
+	else if (globaldir != NULL)
 	    rettv->vval.v_string = vim_strsave(globaldir);
 	else
 	{
@@ -21077,6 +21079,17 @@
 }
 
 /*
+ * "test_autochdir()"
+ */
+    static void
+f_test_autochdir(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
+{
+#if defined(FEAT_AUTOCHDIR)
+    test_autochdir = TRUE;
+#endif
+}
+
+/*
  * "test_disable_char_avail({expr})" function
  */
     static void
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 5900c86..d93a7ec 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3059,6 +3059,7 @@
     char_u	*browse_file = NULL;
 #endif
     buf_T	*alt_buf = NULL;
+    int		name_was_missing;
 
     if (not_writing())		/* check 'write' option */
 	return FAIL;
@@ -3226,6 +3227,8 @@
 #endif
 	}
 
+	name_was_missing = curbuf->b_ffname == NULL;
+
 	retval = buf_write(curbuf, ffname, fname, eap->line1, eap->line2,
 				 eap, eap->append, eap->forceit, TRUE, FALSE);
 
@@ -3239,7 +3242,12 @@
 		redraw_tabline = TRUE;
 #endif
 	    }
-	    /* Change directories when the 'acd' option is set. */
+	}
+
+	/* Change directories when the 'acd' option is set and the file name
+	 * got changed or set. */
+	if (eap->cmdidx == CMD_saveas || name_was_missing)
+	{
 	    DO_AUTOCHDIR
 	}
     }
diff --git a/src/globals.h b/src/globals.h
index 68bf36f..879255c 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -635,6 +635,9 @@
 EXTERN int	really_exiting INIT(= FALSE);
 				/* TRUE when we are sure to exit, e.g., after
 				 * a deadly signal */
+#if defined(FEAT_AUTOCHDIR)
+EXTERN int	test_autochdir INIT(= FALSE);
+#endif
 #if defined(EXITFREE)
 EXTERN int	entered_free_all_mem INIT(= FALSE);
 				/* TRUE when in or after free_all_mem() */
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 88efd19..dabf573 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -164,6 +164,7 @@
 # Keep test_alot*.res as the last one, sort the others.
 NEW_TESTS = test_arglist.res \
 	    test_assert.res \
+	    test_autochdir \
 	    test_backspace_opt.res \
 	    test_cdo.res \
 	    test_channel.res \
diff --git a/src/testdir/test_autochdir.vim b/src/testdir/test_autochdir.vim
new file mode 100644
index 0000000..f52e2e6
--- /dev/null
+++ b/src/testdir/test_autochdir.vim
@@ -0,0 +1,17 @@
+" Test 'autochdir' behavior
+
+if !exists("+autochdir")
+  finish
+endif
+
+func Test_set_filename()
+  call test_autochdir()
+  set acd
+  new
+  w samples/Xtest
+  call assert_equal("Xtest", expand('%'))
+  call assert_equal("samples", substitute(getcwd(), '.*/\(\k*\)', '\1', ''))
+  bwipe!
+  set noacd
+  call delete('samples/Xtest')
+endfunc
diff --git a/src/version.c b/src/version.c
index 86c8c06..b2dc76e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2015,
+/**/
     2014,
 /**/
     2013,
