diff --git a/src/evalfunc.c b/src/evalfunc.c
index f302df7..2949c89 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -736,15 +736,15 @@
     {"shellescape",	1, 2, 0,	  f_shellescape},
     {"shiftwidth",	0, 1, 0,	  f_shiftwidth},
 #ifdef FEAT_SIGNS
-    {"sign_define",	1, 2, 0,	  f_sign_define},
-    {"sign_getdefined",	0, 1, 0,	  f_sign_getdefined},
-    {"sign_getplaced",	0, 2, 0,	  f_sign_getplaced},
-    {"sign_jump",	3, 3, 0,	  f_sign_jump},
-    {"sign_place",	4, 5, 0,	  f_sign_place},
-    {"sign_placelist",	1, 1, 0,	  f_sign_placelist},
-    {"sign_undefine",	0, 1, 0,	  f_sign_undefine},
-    {"sign_unplace",	1, 2, 0,	  f_sign_unplace},
-    {"sign_unplacelist",	1, 2, 0,	  f_sign_unplacelist},
+    {"sign_define",	1, 2, FEARG_1,	  f_sign_define},
+    {"sign_getdefined",	0, 1, FEARG_1,	  f_sign_getdefined},
+    {"sign_getplaced",	0, 2, FEARG_1,	  f_sign_getplaced},
+    {"sign_jump",	3, 3, FEARG_1,	  f_sign_jump},
+    {"sign_place",	4, 5, FEARG_1,	  f_sign_place},
+    {"sign_placelist",	1, 1, FEARG_1,	  f_sign_placelist},
+    {"sign_undefine",	0, 1, FEARG_1,	  f_sign_undefine},
+    {"sign_unplace",	1, 2, FEARG_1,	  f_sign_unplace},
+    {"sign_unplacelist", 1, 2, FEARG_1,	  f_sign_unplacelist},
 #endif
     {"simplify",	1, 1, 0,	  f_simplify},
 #ifdef FEAT_FLOAT
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index f3477de..862199c 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -393,7 +393,7 @@
 
   " Tests for sign_define()
   let attr = {'text' : '=>', 'linehl' : 'Search', 'texthl' : 'Error'}
-  call assert_equal(0, sign_define("sign1", attr))
+  call assert_equal(0, "sign1"->sign_define(attr))
   call assert_equal([{'name' : 'sign1', 'texthl' : 'Error',
 	      \ 'linehl' : 'Search', 'text' : '=>'}], sign_getdefined())
 
@@ -404,13 +404,13 @@
   call Sign_define_ignore_error("sign2", attr)
   call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
 	      \ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
-	      \ sign_getdefined("sign2"))
+	      \ "sign2"->sign_getdefined())
 
   " Test for a sign name with digits
   call assert_equal(0, sign_define(0002, {'linehl' : 'StatusLine'}))
   call assert_equal([{'name' : '2', 'linehl' : 'StatusLine'}],
 	      \ sign_getdefined(0002))
-  call sign_undefine(0002)
+  eval 0002->sign_undefine()
 
   " Tests for invalid arguments to sign_define()
   call assert_fails('call sign_define("sign4", {"text" : "===>"})', 'E239:')
@@ -434,7 +434,7 @@
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
 	      \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
 	      \ 'priority' : 10}]}],
-	      \ sign_getplaced('%', {'lnum' : 20}))
+	      \ '%'->sign_getplaced({'lnum' : 20}))
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
 	      \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
 	      \ 'priority' : 10}]}],
@@ -490,10 +490,10 @@
 	      \ 'E745:')
 
   " Tests for sign_unplace()
-  call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
+  eval 20->sign_place('', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_equal(0, sign_unplace('',
 	      \ {'id' : 20, 'buffer' : 'Xsign'}))
-  call assert_equal(-1, sign_unplace('',
+  call assert_equal(-1, ''->sign_unplace(
 	      \ {'id' : 30, 'buffer' : 'Xsign'}))
   call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_fails("call sign_unplace('',
@@ -1711,7 +1711,7 @@
   let r = sign_jump(5, '', 'foo')
   call assert_equal(2, r)
   call assert_equal(2, line('.'))
-  let r = sign_jump(6, 'g1', 'foo')
+  let r = 6->sign_jump('g1', 'foo')
   call assert_equal(5, r)
   call assert_equal(5, line('.'))
   let r = sign_jump(5, '', 'bar')
@@ -1935,8 +1935,7 @@
 	      \ 'group' : 'g1', 'priority' : 10}], s[0].signs)
 
   " Change an existing sign without specifying the group
-  call assert_equal([5], sign_placelist([
-	      \ {'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]))
+  call assert_equal([5], [{'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]->sign_placelist())
   let s = sign_getplaced('Xsign', {'id' : 5, 'group' : ''})
   call assert_equal([{'id' : 5, 'name' : 'sign1', 'lnum' : 11,
 	      \ 'group' : '', 'priority' : 10}], s[0].signs)
@@ -1969,7 +1968,7 @@
 	      \ {'id' : 1, 'group' : 'g1'}, {'id' : 1, 'group' : 'g2'}]))
 
   " Invalid arguments
-  call assert_equal([], sign_unplacelist([]))
+  call assert_equal([], []->sign_unplacelist())
   call assert_fails('call sign_unplacelist({})', "E714:")
   call assert_fails('call sign_unplacelist([[]])', "E715:")
   call assert_fails('call sign_unplacelist(["abc"])', "E715:")
diff --git a/src/version.c b/src/version.c
index 88e0791..65512c9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1995,
+/**/
     1994,
 /**/
     1993,
