diff --git a/runtime/autoload/tutor.vim b/runtime/autoload/tutor.vim
index 6ab7960..b21e20f 100644
--- a/runtime/autoload/tutor.vim
+++ b/runtime/autoload/tutor.vim
@@ -157,12 +157,14 @@
     return retval
 endfunction
 
-function! s:GlobTutorials(name)
+" returns a list of all tutor files matching the given name
+function! tutor#GlobTutorials(name, locale)
+    let locale = a:locale
     " search for tutorials:
     " 1. non-localized
     let l:tutors = s:GlobPath(&rtp, 'tutor/'.a:name.'.tutor')
     " 2. localized for current locale
-    let l:locale_tutors = s:GlobPath(&rtp, 'tutor/'.s:Locale()[0].'/'.a:name.'.tutor')
+    let l:locale_tutors = s:GlobPath(&rtp, 'tutor/'.locale.'/'.a:name.'.tutor')
     " 3. fallback to 'en'
     if len(l:locale_tutors) == 0
         let l:locale_tutors = s:GlobPath(&rtp, 'tutor/en/'.a:name.'.tutor')
@@ -187,7 +189,7 @@
         let l:tutor_name = fnamemodify(l:tutor_name, ':r')
     endif
 
-    let l:tutors = s:GlobTutorials(l:tutor_name)
+    let l:tutors = tutor#GlobTutorials(l:tutor_name, s:Locale()[0])
 
     if len(l:tutors) == 0
         echom "No tutorial with that name found"
@@ -214,7 +216,7 @@
 endfunction
 
 function! tutor#TutorCmdComplete(lead,line,pos)
-    let l:tutors = s:GlobTutorials('*')
+    let l:tutors = tutor#GlobTutorials('*', s:Locale()[0])
     let l:names = uniq(sort(map(l:tutors, 'fnamemodify(v:val, ":t:r")'), 's:Sort'))
     return join(l:names, "\n")
 endfunction
diff --git a/runtime/tutor/en/vim-01-beginner.tutor b/runtime/tutor/en/vim-01-beginner.tutor
index 86efa78..8af5d46 100644
--- a/runtime/tutor/en/vim-01-beginner.tutor
+++ b/runtime/tutor/en/vim-01-beginner.tutor
@@ -970,7 +970,7 @@
 # CONCLUSION
 
 This concludes Chapter 1 of the Vim Tutor.  Consider continuing with
-[Chapter 2](@tutor:tutor:vim-02-beginner).
+[Chapter 2](@tutor:vim-02-beginner).
 
 This was intended to give a brief overview of the Vim editor, just enough to
 allow you to use the editor fairly easily. It is far from complete as Vim has
diff --git a/src/testdir/test_plugin_tutor.vim b/src/testdir/test_plugin_tutor.vim
index 61cea3f..3dc46fd 100644
--- a/src/testdir/test_plugin_tutor.vim
+++ b/src/testdir/test_plugin_tutor.vim
@@ -14,3 +14,21 @@
   call assert_true(empty(&buftype))
   call assert_match('tutor#EnableInteractive', b:undo_ftplugin)
 endfunc
+
+func Test_tutor_link()
+  let tutor_files = globpath($VIMRUNTIME, 'tutor/**/*.tutor', 0, 1)
+  let pattern = '\[.\{-}@tutor:\zs[^)\]]*\ze[)\]]'
+
+  for tutor_file in tutor_files
+    let lang = fnamemodify(tutor_file, ':h:t')
+    if lang == 'tutor'
+      let lang = 'en'
+    endif
+
+    let text = readfile(tutor_file)
+    let links = matchstrlist(text, pattern)->map({_, v -> v.text})
+    for link in links
+      call assert_true(tutor#GlobTutorials(link, lang)->len() > 0)
+    endfor
+  endfor
+endfunc
diff --git a/src/version.c b/src/version.c
index f94dbe3..9cecc0b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1404,
+/**/
     1403,
 /**/
     1402,
