diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 0eeb3f3..f925378 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5920,7 +5920,8 @@
     char_u	*dir,		// doc directory
     char_u	*ext,		// suffix, ".txt", ".itx", ".frx", etc.
     char_u	*tagfname,	// "tags" for English, "tags-fr" for French.
-    int		add_help_tags)	// add "help-tags" tag
+    int		add_help_tags,	// add "help-tags" tag
+    int		ignore_writeerr)    // ignore write error
 {
     FILE	*fd_tags;
     FILE	*fd;
@@ -5964,7 +5965,8 @@
     fd_tags = mch_fopen((char *)NameBuff, "w");
     if (fd_tags == NULL)
     {
-	semsg(_("E152: Cannot open %s for writing"), NameBuff);
+	if (!ignore_writeerr)
+	    semsg(_("E152: Cannot open %s for writing"), NameBuff);
 	FreeWild(filecount, files);
 	return;
     }
@@ -6165,7 +6167,7 @@
  * Generate tags in one help directory, taking care of translations.
  */
     static void
-do_helptags(char_u *dirname, int add_help_tags)
+do_helptags(char_u *dirname, int add_help_tags, int ignore_writeerr)
 {
 #ifdef FEAT_MULTI_LANG
     int		len;
@@ -6251,7 +6253,7 @@
 	    ext[1] = fname[5];
 	    ext[2] = fname[6];
 	}
-	helptags_one(dirname, ext, fname, add_help_tags);
+	helptags_one(dirname, ext, fname, add_help_tags, ignore_writeerr);
     }
 
     ga_clear(&ga);
@@ -6259,14 +6261,15 @@
 
 #else
     // No language support, just use "*.txt" and "tags".
-    helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags);
+    helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags,
+							    ignore_writeerr);
 #endif
 }
 
     static void
 helptags_cb(char_u *fname, void *cookie)
 {
-    do_helptags(fname, *(int *)cookie);
+    do_helptags(fname, *(int *)cookie, TRUE);
 }
 
 /*
@@ -6300,7 +6303,7 @@
 	if (dirname == NULL || !mch_isdir(dirname))
 	    semsg(_("E150: Not a directory: %s"), eap->arg);
 	else
-	    do_helptags(dirname, add_help_tags);
+	    do_helptags(dirname, add_help_tags, FALSE);
 	vim_free(dirname);
     }
 }
diff --git a/src/testdir/test_help.vim b/src/testdir/test_help.vim
index 3b6ad39..219689b 100644
--- a/src/testdir/test_help.vim
+++ b/src/testdir/test_help.vim
@@ -90,10 +90,18 @@
   " The following tests fail on FreeBSD for some reason
   if has('unix') && !has('bsd')
     " Read-only tags file
-    call writefile([''], 'Xdir/tags')
-    call setfperm('Xdir/tags', 'r-xr--r--')
-    call assert_fails('helptags Xdir', 'E152:', getfperm('Xdir/tags'))
-    call delete('Xdir/tags')
+    call mkdir('Xdir/doc', 'p')
+    call writefile([''], 'Xdir/doc/tags')
+    call writefile([], 'Xdir/doc/sample.txt')
+    call setfperm('Xdir/doc/tags', 'r-xr--r--')
+    call assert_fails('helptags Xdir/doc', 'E152:', getfperm('Xdir/doc/tags'))
+
+    let rtp = &rtp
+    let &rtp = 'Xdir'
+    helptags ALL
+    let &rtp = rtp
+
+    call delete('Xdir/doc/tags')
 
     " No permission to read the help file
     call setfperm('Xdir/a/doc/sample.txt', '-w-------')
diff --git a/src/version.c b/src/version.c
index ad70c4d..1008eaf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    272,
+/**/
     271,
 /**/
     270,
