diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index f280a31..79e6098 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -8,36 +8,71 @@
   new
   call setline(1, ['a', 'b', 'c', 'd'])
 
+  " Define some signs.
+  " We can specify icons even if not all versions of vim support icons as
+  " icon is ignored when not supported.  "(not supported)" is shown after
+  " the icon name when listing signs.
   sign define Sign1 text=x
-  sign define Sign2 text=y
+  try
+    sign define Sign2 text=xy texthl=Title linehl=Error icon=../../pixmaps/stock_vim_find_help.png
+  catch /E255:/
+    " ignore error: E255: Couldn't read in sign data!
+    " This error can happen when running in gui.
+    " Some gui like Motif do not support the png icon format.
+  endtry
 
   " Test listing signs.
   let a=execute('sign list')
-  call assert_equal("\nsign Sign1 text=x \nsign Sign2 text=y ", a)
+  call assert_match("^\nsign Sign1 text=x \nsign Sign2 icon=../../pixmaps/stock_vim_find_help.png .*text=xy linehl=Error texthl=Title$", a)
 
   let a=execute('sign list Sign1')
   call assert_equal("\nsign Sign1 text=x ", a)
 
-  " Place the sign at line 3,then check that we can jump to it.
-  exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('')
+  " Split the window to the bottom to verify sign jump will stay in the current window
+  " if the buffer is displayed there.
+  let bn = bufnr('%')
+  let wn = winnr()
+  exe 'sign place 41 line=3 name=Sign1 buffer=' . bn 
   1
-  exe 'sign jump 42 buffer=' . bufnr('')
+  bot split
+  exe 'sign jump 41 buffer=' . bufnr('%')
+  call assert_equal('c', getline('.'))
+  call assert_equal(3, winnr())
+  call assert_equal(bn, bufnr('%'))
+  call assert_notequal(wn, winnr())
+
+  " Create a new buffer and check that ":sign jump" switches to the old buffer.
+  1
+  new foo
+  call assert_notequal(bn, bufnr('%'))
+  exe 'sign jump 41 buffer=' . bn
+  call assert_equal(bn, bufnr('%'))
   call assert_equal('c', getline('.'))
 
-  " Can't change sign.
-  call assert_fails("exe 'sign place 43 name=Sign1 buffer=' . bufnr('')", 'E885:')
+  " Redraw to make sure that screen redraw with sign gets exercised,
+  " with and without 'rightleft'.
+  if has('rightleft')
+    set rightleft
+    redraw
+    set norightleft
+  endif
+  redraw
 
+  " Check that we can't change sign.
+  call assert_fails("exe 'sign place 40 name=Sign1 buffer=' . bufnr('%')", 'E885:')
+
+  " Check placed signs
   let a=execute('sign place')
-  call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n    line=3  id=42  name=Sign1\n", a)
+  call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n    line=3  id=41  name=Sign1\n", a)
 
-  " Unplace the sign and try jumping to it again should now fail.
-  sign unplace 42
+  " Unplace the sign and try jumping to it again should fail.
+  sign unplace 41
   1
-  call assert_fails("exe 'sign jump 42 buffer=' . bufnr('')", 'E157:')
+  call assert_fails("exe 'sign jump 41 buffer=' . bufnr('%')", 'E157:')
   call assert_equal('a', getline('.'))
 
   " Unplace sign on current line.
-  exe 'sign place 43 line=4 name=Sign2 buffer=' . bufnr('')
+  exe 'sign place 42 line=4 name=Sign2 buffer=' . bufnr('%')
   4
   sign unplace
   let a=execute('sign place')
@@ -47,16 +82,54 @@
   call assert_fails('sign unplace', 'E159:')
 
   " Unplace all signs.
-  exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('')
+  exe 'sign place 41 line=3 name=Sign1 buffer=' . bufnr('%')
   sign unplace *
   let a=execute('sign place')
   call assert_equal("\n--- Signs ---\n", a)
 
+  " Check :jump with file=...
+  edit foo
+  call setline(1, ['A', 'B', 'C', 'D'])
+
+  try
+    sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist icon=doesnotexist.xpm
+  catch /E255:/
+    " ignore error: E255: it can happens for guis.
+  endtry
+
+  let fn = expand('%:p')
+  exe 'sign place 43 line=2 name=Sign3 file=' . fn
+  edit bar
+  call assert_notequal(fn, expand('%:p'))
+  exe 'sign jump 43 file=' . fn
+  call assert_equal('B', getline('.'))
+
   " After undefining the sign, we should no longer be able to place it.
   sign undefine Sign1
   sign undefine Sign2
-  call assert_fails("exe 'sign place 42 line=3 name=Sign1 buffer=' . bufnr('')", 'E155:')
+  sign undefine Sign3
+  call assert_fails("exe 'sign place 41 line=3 name=Sign1 buffer=' . bufnr('%')", 'E155:')
+endfunc
 
+" Undefining placed sign is not recommended.
+" Quoting :help sign
+"
+" :sign undefine {name}
+"                Deletes a previously defined sign.  If signs with this {name}
+"                are still placed this will cause trouble.
+func Test_sign_undefine_still_placed()
+  new foobar
+  sign define Sign text=x
+  exe 'sign place 41 line=1 name=Sign buffer=' . bufnr('%')
+  sign undefine Sign
+
+  " Listing placed sign should show that sign is deleted.
+  let a=execute('sign place')
+  call assert_equal("\n--- Signs ---\nSigns for foobar:\n    line=1  id=41  name=[Deleted]\n", a)
+
+  sign unplace 41
+  let a=execute('sign place')
+  call assert_equal("\n--- Signs ---\n", a)
 endfunc
 
 func Test_sign_completion()
@@ -72,6 +145,9 @@
   call feedkeys(":sign define Sign linehl=Spell\<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare', @:)
 
+  call feedkeys(":sign define Sign icon=../../pixmaps/tb_p\<C-A>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"sign define Sign icon=../../pixmaps/tb_paste.xpm ../../pixmaps/tb_print.xpm', @:)
+
   call feedkeys(":sign undefine \<C-A>\<C-B>\"\<CR>", 'tx')
   call assert_equal('"sign undefine Sign1 Sign2', @:)
 
@@ -92,13 +168,14 @@
 
   sign undefine Sign1
   sign undefine Sign2
-
 endfunc
 
 func Test_sign_invalid_commands()
   call assert_fails('sign', 'E471:')
+  call assert_fails('sign jump', 'E471:')
   call assert_fails('sign xxx', 'E160:')
   call assert_fails('sign define', 'E156:')
+  call assert_fails('sign define Sign1 xxx', 'E475:')
   call assert_fails('sign undefine', 'E156:')
   call assert_fails('sign list xxx', 'E155:')
   call assert_fails('sign place 1 buffer=', 'E158:')
diff --git a/src/version.c b/src/version.c
index 3adadd4..9538765 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2194,
+/**/
     2193,
 /**/
     2192,
