diff --git a/src/po/check.vim b/src/po/check.vim
index b4d50f187eb151fd5723b2da4c90d85277be9303..5a3a0e3f4631fc46e07b544a4c0611c7bc97ba14 100644
--- a/src/po/check.vim
+++ b/src/po/check.vim
@@ -30,6 +30,10 @@ func! GetMline()
   return substitute(idline, '[^%]*\(%[-+ #''.0-9*]*l\=[dsuxXpoc%]\)\=', '\1', 'g')
 endfunc
 
+" This only works when 'wrapscan' is set.
+let s:save_wrapscan = &wrapscan
+set wrapscan
+
 " Start at the first "msgid" line.
 1
 /^msgid
@@ -78,4 +82,7 @@ if error == 0
   echo "OK"
 endif
 
+let &wrapscan = s:save_wrapscan
+unlet s:save_wrapscan
+
 endif