diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 71c3dcc..67ef641 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -342,6 +342,7 @@
 	test_writefile \
 	test_xdg \
 	test_xxd \
+	test_zip_plugin \
 	test_alot_latin \
 	test_alot_utf8 \
 	test_alot
@@ -583,6 +584,7 @@
 	test_writefile.res \
 	test_xdg.res \
 	test_xxd.res \
+	test_zip_plugin.res \
 	test_alot_latin.res \
 	test_alot_utf8.res \
 	test_alot.res
diff --git a/src/testdir/samples/test.zip b/src/testdir/samples/test.zip
new file mode 100644
index 0000000..6d34ac6
--- /dev/null
+++ b/src/testdir/samples/test.zip
Binary files differ
diff --git a/src/testdir/test_zip_plugin.vim b/src/testdir/test_zip_plugin.vim
new file mode 100644
index 0000000..4e8eff4
--- /dev/null
+++ b/src/testdir/test_zip_plugin.vim
@@ -0,0 +1,139 @@
+so check.vim
+
+CheckExecutable unzip
+
+if 0 " Find uncovered line
+  profile start zip_profile
+  profile! file */zip*.vim
+endif
+
+runtime plugin/zipPlugin.vim
+
+def Test_zip_basic()
+  var _sl = &shellslash
+  set noshellslash
+
+  ### get our zip file
+  if !filecopy("samples/test.zip", "X.zip")
+    assert_report("Can't copy samples/test.zip")
+    return
+  endif
+  defer delete("X.zip")
+
+  e X.zip
+
+  ### Check header
+  assert_match('^" zip\.vim version v\d\+', getline(1))
+  assert_match('^" Browsing zipfile .*/X.zip', getline(2))
+  assert_match('^" Select a file with cursor and press ENTER', getline(3))
+  assert_match('^$', getline(4))
+
+  ### Check files listing
+  assert_equal(["Xzip/", "Xzip/dir/", "Xzip/file.txt"], getline(5, 7))
+
+  ### Check ENTER on header
+  :1
+  exe ":normal \<cr>"
+  assert_equal("X.zip", @%)
+
+  ### Check ENTER on directory
+  :1|:/^$//dir/
+  assert_match('Please specify a file, not a directory',
+               execute("normal \<CR>"))
+
+  ### Check ENTER on file
+  :1|:/^$//file/
+  exe ":normal \<cr>"
+  assert_match('zipfile://.*/X.zip::Xzip/file.txt', @%)
+  assert_equal('one', getline(1))
+
+  ### Check editing file
+  if executable("zip")
+    s/one/two/
+    assert_equal("two", getline(1))
+    w
+    bw|bw
+    e X.zip
+
+    :1|:/^$//file/
+    exe "normal \<cr>"
+    assert_equal("two", getline(1))
+  endif
+
+  only
+  e X.zip
+
+  ### Check extracting file
+  :1|:/^$//file/
+  normal x
+  assert_true(filereadable("Xzip/file.txt"))
+  delete("Xzip", "rf")
+
+  ### Check extracting directory
+  :1|:/^$//dir/
+  assert_match('Please specify a file, not a directory', execute("normal x"))
+  assert_equal("X.zip", @%)
+
+  ### Check "x" on header
+  :1
+  normal x
+  assert_equal("X.zip", @%)
+  bw
+
+  ### Check opening zip when "unzip" program is missing
+  var save_zip_unzipcmd = g:zip_unzipcmd
+  g:zip_unzipcmd = "/"
+  assert_match('unzip not available on your system', execute("e X.zip"))
+
+  ### Check when "unzip" don't work
+  if executable("false")
+    g:zip_unzipcmd = "false"
+    assert_match('X\.zip is not a zip file', execute("e X.zip"))
+  endif
+  bw
+
+  g:zip_unzipcmd = save_zip_unzipcmd
+  e X.zip
+
+  ### Check opening file when "unzip" is missing
+  g:zip_unzipcmd = "/"
+  assert_match('sorry, your system doesn''t appear to have the / program',
+               execute("normal \<CR>"))
+
+  bw|bw
+  g:zip_unzipcmd = save_zip_unzipcmd
+  e X.zip
+
+  ### Check :write when "zip" program is missing
+  :1|:/^$//file/
+  exe "normal \<cr>Goanother\<esc>"
+  var save_zip_zipcmd = g:zip_zipcmd
+  g:zip_zipcmd = "/"
+  assert_match('sorry, your system doesn''t appear to have the / program',
+               execute("write"))
+
+  ### Check when "zip" report failure
+  if executable("false")
+    g:zip_zipcmd = "false"
+    assert_match('sorry, unable to update .*/X.zip with Xzip/file.txt',
+                  execute("write"))
+  endif
+  bw!|bw
+
+  g:zip_zipcmd = save_zip_zipcmd
+
+  ### Check opening an no zipfile
+  writefile(["qsdf"], "Xcorupt.zip", "D")
+  e! Xcorupt.zip
+  assert_equal("qsdf", getline(1))
+
+  bw
+
+  ### Check no existing zipfile
+  assert_match('File not readable', execute("e Xnot_exists.zip"))
+
+  bw
+
+  &shellslash = _sl
+
+enddef
diff --git a/src/version.c b/src/version.c
index 13167ab..460afa9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    661,
+/**/
     660,
 /**/
     659,
