diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index 71353c8..82b5f91 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -704,29 +704,45 @@
 
 func Test_defer_quitall_autocmd()
   let lines =<< trim END
-      autocmd User DeferAutocmdThree qa!
-
-      func DeferLevelTwo()
-        call writefile(['text'], 'XQuitallAutocmdTwo', 'D')
-        doautocmd User DeferAutocmdThree
+      func DeferLevelFive()
+        defer writefile(['5'], 'XQuitallAutocmd', 'a')
+        qa!
       endfunc
 
-      autocmd User DeferAutocmdTwo ++nested call DeferLevelTwo()
+      autocmd User DeferAutocmdFive call DeferLevelFive()
 
-      def DeferLevelOne()
-        call writefile(['text'], 'XQuitallAutocmdOne', 'D')
-        doautocmd User DeferAutocmdTwo
+      def DeferLevelFour()
+        defer writefile(['4'], 'XQuitallAutocmd', 'a')
+        doautocmd User DeferAutocmdFive
       enddef
 
+      func DeferLevelThree()
+        defer writefile(['3'], 'XQuitallAutocmd', 'a')
+        call DeferLevelFour()
+      endfunc
+
+      autocmd User DeferAutocmdThree ++nested call DeferLevelThree()
+
+      def DeferLevelTwo()
+        defer writefile(['2'], 'XQuitallAutocmd', 'a')
+        doautocmd User DeferAutocmdThree
+      enddef
+
+      func DeferLevelOne()
+        defer writefile(['1'], 'XQuitallAutocmd', 'a')
+        call DeferLevelTwo()
+      endfunc
+
       autocmd User DeferAutocmdOne ++nested call DeferLevelOne()
 
       doautocmd User DeferAutocmdOne
   END
   call writefile(lines, 'XdeferQuitallAutocmd', 'D')
-  let res = system(GetVimCommand() .. ' -X -S XdeferQuitallAutocmd')
+  call system(GetVimCommand() .. ' -X -S XdeferQuitallAutocmd')
   call assert_equal(0, v:shell_error)
-  call assert_false(filereadable('XQuitallAutocmdOne'))
-  call assert_false(filereadable('XQuitallAutocmdTwo'))
+  call assert_equal(['5', '4', '3', '2', '1'], readfile('XQuitallAutocmd'))
+
+  call delete('XQuitallAutocmd')
 endfunc
 
 func Test_defer_quitall_in_expr_func()
diff --git a/src/userfunc.c b/src/userfunc.c
index 0680767..fbde6ed 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -6144,12 +6144,12 @@
     void
 invoke_all_defer(void)
 {
+    for (funccall_T *fc = current_funccal; fc != NULL; fc = fc->fc_caller)
+	invoke_funccall_defer(fc);
+
     for (funccal_entry_T *fce = funccal_stack; fce != NULL; fce = fce->next)
 	for (funccall_T *fc = fce->top_funccal; fc != NULL; fc = fc->fc_caller)
 	    invoke_funccall_defer(fc);
-
-    for (funccall_T *fc = current_funccal; fc != NULL; fc = fc->fc_caller)
-	invoke_funccall_defer(fc);
 }
 
 /*
diff --git a/src/version.c b/src/version.c
index 95cff8e..5f99909 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1470,
+/**/
     1469,
 /**/
     1468,
