diff --git a/src/indent.c b/src/indent.c
index 79162bf..c6e3aaf 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1952,7 +1952,7 @@
     {
 	(void)copy_option_part(&word, buf, LSIZE, ",");
 	len = (int)STRLEN(buf);
-	if (STRNCMP(buf, p, len) == 0 && p[len] == ' ')
+	if (STRNCMP(buf, p, len) == 0 && IS_WHITE_OR_NUL(p[len]))
 	    return TRUE;
     }
     return FALSE;
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 7aff1e8..743da38 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -182,7 +182,7 @@
 	test_largefile \
 	test_let \
 	test_lineending \
-	test_lispwords \
+	test_lispindent \
 	test_listchars \
 	test_listdict \
 	test_listener \
@@ -427,6 +427,7 @@
 	test_langmap.res \
 	test_let.res \
 	test_lineending.res \
+	test_lispindent.res \
 	test_listchars.res \
 	test_listdict.res \
 	test_listener.res \
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index 46af344..b7b7ead 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -16,7 +16,6 @@
 source test_ga.vim
 source test_glob2regpat.vim
 source test_global.vim
-source test_lispwords.vim
 source test_move.vim
 source test_put.vim
 source test_reltime.vim
diff --git a/src/testdir/test_cpoptions.vim b/src/testdir/test_cpoptions.vim
index 979c00b..a5822aa 100644
--- a/src/testdir/test_cpoptions.vim
+++ b/src/testdir/test_cpoptions.vim
@@ -422,7 +422,7 @@
   let &cpo = save_cpo
 endfunc
 
-" Test for the 'p' flag in 'cpo' is in the test_lispwords.vim file.
+" Test for the 'p' flag in 'cpo' is in the test_lispindent.vim file.
 
 " Test for the 'P' flag in 'cpo' (appending to a file sets the current file
 " name)
diff --git a/src/testdir/test_lispindent.vim b/src/testdir/test_lispindent.vim
new file mode 100644
index 0000000..8f2d332
--- /dev/null
+++ b/src/testdir/test_lispindent.vim
@@ -0,0 +1,103 @@
+" Tests for 'lispwords' settings being global-local.
+" And  other lisp indent stuff.
+
+set nocompatible viminfo+=nviminfo
+
+func Test_global_local_lispwords()
+  setglobal lispwords=foo,bar,baz
+  setlocal lispwords-=foo | setlocal lispwords+=quux
+  call assert_equal('foo,bar,baz', &g:lispwords)
+  call assert_equal('bar,baz,quux', &l:lispwords)
+  call assert_equal('bar,baz,quux', &lispwords)
+
+  setlocal lispwords<
+  call assert_equal('foo,bar,baz', &g:lispwords)
+  call assert_equal('foo,bar,baz', &l:lispwords)
+  call assert_equal('foo,bar,baz', &lispwords)
+endfunc
+
+def Test_lisp_indent()
+  enew!
+
+  append(0, [
+	       '(defun html-file (base)',
+	       '(format nil "~(~A~).html" base))',
+	       '',
+	       '(defmacro page (name title &rest body)',
+	       '(let ((ti (gensym)))',
+	       '`(with-open-file (*standard-output*',
+	       '(html-file ,name)',
+	       ':direction :output',
+	       ':if-exists :supersede)',
+	       '(let ((,ti ,title))',
+	       '(as title ,ti)',
+	       '(with center ',
+	       '(as h2 (string-upcase ,ti)))',
+	       '(brs 3)',
+	       ',@body))))',
+	       '',
+	       ';;; Utilities for generating links',
+	       '',
+	       '(defmacro with-link (dest &rest body)',
+	       '`(progn',
+	       '(format t "<a href=\"~A\">" (html-file ,dest))',
+	       ',@body',
+	       '(princ "</a>")))'
+	       ])
+  assert_equal(7, lispindent(2))
+  assert_equal(5, 6->lispindent())
+  assert_fails('lispindent(-1)', 'E966: Invalid line number: -1')
+
+  set lisp
+  set lispwords&
+  var save_copt = &cpoptions
+  set cpoptions+=p
+  normal 1G=G
+
+  assert_equal([
+	       '(defun html-file (base)',
+	       '  (format nil "~(~A~).html" base))',
+	       '',
+	       '(defmacro page (name title &rest body)',
+	       '  (let ((ti (gensym)))',
+	       '       `(with-open-file (*standard-output*',
+	       '			 (html-file ,name)',
+	       '			 :direction :output',
+	       '			 :if-exists :supersede)',
+	       '			(let ((,ti ,title))',
+	       '			     (as title ,ti)',
+	       '			     (with center ',
+	       '				   (as h2 (string-upcase ,ti)))',
+	       '			     (brs 3)',
+	       '			     ,@body))))',
+	       '',
+	       ';;; Utilities for generating links',
+	       '',
+	       '(defmacro with-link (dest &rest body)',
+	       '  `(progn',
+	       '    (format t "<a href=\"~A\">" (html-file ,dest))',
+	       '    ,@body',
+	       '    (princ "</a>")))',
+	       ''
+	       ], getline(1, "$"))
+
+  enew!
+  &cpoptions = save_copt
+  set nolisp
+enddef
+
+func Test_lispindent_negative()
+  " in legacy script there is no error
+  call assert_equal(-1, lispindent(-1))
+endfunc
+
+func Test_lisp_indent_works()
+  " This was reading beyond the end of the line
+  new
+  exe "norm a\tü(\<CR>="
+  set lisp
+  norm ==
+  bwipe!
+endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_lispwords.vim b/src/testdir/test_lispwords.vim
deleted file mode 100644
index 4144fb0..0000000
--- a/src/testdir/test_lispwords.vim
+++ /dev/null
@@ -1,98 +0,0 @@
-" Tests for 'lispwords' settings being global-local.
-" And  other lisp indent stuff.
-
-set nocompatible viminfo+=nviminfo
-
-func Test_global_local_lispwords()
-  setglobal lispwords=foo,bar,baz
-  setlocal lispwords-=foo | setlocal lispwords+=quux
-  call assert_equal('foo,bar,baz', &g:lispwords)
-  call assert_equal('bar,baz,quux', &l:lispwords)
-  call assert_equal('bar,baz,quux', &lispwords)
-
-  setlocal lispwords<
-  call assert_equal('foo,bar,baz', &g:lispwords)
-  call assert_equal('foo,bar,baz', &l:lispwords)
-  call assert_equal('foo,bar,baz', &lispwords)
-endfunc
-
-func Test_lisp_indent()
-  enew!
-
-  call append(0, [
-	      \ '(defun html-file (base)',
-	      \ '(format nil "~(~A~).html" base))',
-	      \ '',
-	      \ '(defmacro page (name title &rest body)',
-	      \ '(let ((ti (gensym)))',
-	      \ '`(with-open-file (*standard-output*',
-	      \ '(html-file ,name)',
-	      \ ':direction :output',
-	      \ ':if-exists :supersede)',
-	      \ '(let ((,ti ,title))',
-	      \ '(as title ,ti)',
-	      \ '(with center ',
-	      \ '(as h2 (string-upcase ,ti)))',
-	      \ '(brs 3)',
-	      \ ',@body))))',
-	      \ '',
-	      \ ';;; Utilities for generating links',
-	      \ '',
-	      \ '(defmacro with-link (dest &rest body)',
-	      \ '`(progn',
-	      \ '(format t "<a href=\"~A\">" (html-file ,dest))',
-	      \ ',@body',
-	      \ '(princ "</a>")))'
-	      \ ])
-  call assert_equal(7, lispindent(2))
-  call assert_equal(5, 6->lispindent())
-  call assert_equal(-1, lispindent(-1))
-
-  set lisp
-  set lispwords&
-  let save_copt = &cpoptions
-  set cpoptions+=p
-  normal 1G=G
-
-  call assert_equal([
-	      \ '(defun html-file (base)',
-	      \ '  (format nil "~(~A~).html" base))',
-	      \ '',
-	      \ '(defmacro page (name title &rest body)',
-	      \ '  (let ((ti (gensym)))',
-	      \ '       `(with-open-file (*standard-output*',
-	      \ '			 (html-file ,name)',
-	      \ '			 :direction :output',
-	      \ '			 :if-exists :supersede)',
-	      \ '			(let ((,ti ,title))',
-	      \ '			     (as title ,ti)',
-	      \ '			     (with center ',
-	      \ '				   (as h2 (string-upcase ,ti)))',
-	      \ '			     (brs 3)',
-	      \ '			     ,@body))))',
-	      \ '',
-	      \ ';;; Utilities for generating links',
-	      \ '',
-	      \ '(defmacro with-link (dest &rest body)',
-	      \ '  `(progn',
-	      \ '    (format t "<a href=\"~A\">" (html-file ,dest))',
-	      \ '    ,@body',
-	      \ '    (princ "</a>")))',
-	      \ ''
-	      \ ], getline(1, "$"))
-
-  enew!
-  let &cpoptions=save_copt
-  set nolisp
-endfunc
-
-func Test_lisp_indent_works()
-  " This was reading beyond the end of the line
-  new
-  exe "norm a\tü(\<CR>="
-  set lisp
-  norm ==
-  bwipe!
-endfunc
-
-" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index e77fe6d..9a485a0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    737,
+/**/
     736,
 /**/
     735,
