diff -Nur autoload.orig/zip.vim autoload/zip.vim
--- autoload.orig/zip.vim	2011-05-21 09:46:23.000000000 +0900
+++ autoload/zip.vim	2011-05-21 09:53:18.000000000 +0900
@@ -206,10 +206,11 @@
 "  call Decho("fname  <".fname.">")
 
 "  call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1))
-  exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
+  exe "lockmarks silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
+  filetype detect
 
   " cleanup
-  0d
+  lockmarks keepjumps 0d
   set nomod
 
   let &report= repkeep
