diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 25203d0..0234059 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -1,11 +1,11 @@
-" vim:set ts=8 sts=4 sw=4:
 "
 " tar.vim -- a Vim plugin for browsing tarfiles
 " Copyright (c) 2002, Michael C. Toren <mct@toren.net>
 " Distributed under the GNU General Public License.
 "
-" Version: 1.01
-" Last Change: 2005 Jul 26
+" Version:	2
+" Date:		Sep 14, 2005
+" Modified By:	Charles E. Campbell, Jr.
 "
 " Updates are available from <http://michael.toren.net/code/>.  If you
 " find this script useful, or have suggestions for improvements, please
@@ -13,14 +13,15 @@
 " Also look there for further comments and documentation.
 "
 " This part defines the functions.  The autocommands are in plugin/tar.vim.
+if exists("g:loaded_tar") || &cp
+ finish
+endif
+let g:loaded_tar= "v2"
 
-let s:version = "1.01"
-
-function! tar#Write(argument)
-    echo "ERROR: Sorry, no write support for tarfiles yet"
-endfunction
-
-function! tar#Read(argument, cleanup)
+" ---------------------------------------------------------------------
+"  tar#Read: {{{1
+fun! tar#Read(argument, cleanup)
+"    call Dfunc("tar#Read(argument<".a:argument."> cleanup=".a:cleanup.")")
     let l:argument = a:argument
     let l:argument = substitute(l:argument, '^tarfile:', '', '')
     let l:argument = substitute(l:argument, '^\~', $HOME, '')
@@ -28,7 +29,8 @@
     let l:tarfile = l:argument
     while 1
 	if (l:tarfile == "" || l:tarfile == "/")
-	    echo "ERROR: Could not find a readable tarfile in path:" l:argument
+	    echo "***error*** (tar#Read) Could not find a readable tarfile in path:" l:argument
+"            call Dret("tar#Read")
 	    return
 	endif
 
@@ -42,6 +44,7 @@
     let l:toextract = strpart(l:argument, strlen(l:tarfile) + 1)
 
     if (l:toextract == "")
+"        call Dret("tar#Read")
 	return
     endif
 
@@ -52,12 +55,90 @@
     if (a:cleanup)
 	0d "blank line
 	execute "doautocmd BufReadPost " . expand("%")
-	setlocal readonly
+	setlocal nomod
 	silent preserve
     endif
-endfunction
+"    call Dret("tar#Read")
+endfun
 
-function! tar#Browse(tarfile)
+" ---------------------------------------------------------------------
+" tar#Write: {{{1
+fun! tar#Write(argument)
+"  call Dfunc("tar#Write(argument<".a:argument.">)")
+"
+  " sanity checks
+  if !executable("tar")
+   echo "***error*** (TarWrite) sorry, your system doesn't appear to have the tar pgm"
+"   call Dret("tar#Write")
+   return
+  endif
+  if !exists("*mkdir")
+   echo "***error*** (TarWrite) sorry, mkdir() doesn't work on your system"
+"   call Dret("tar#Write")
+   return
+  endif
+
+  let curdir= getcwd()
+  let tmpdir= tempname()
+"  call Decho("orig tempname<".tmpdir.">")
+  if tmpdir =~ '\.'
+   let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
+  endif
+"  call Decho("tmpdir<".tmpdir.">")
+  call mkdir(tmpdir,"p")
+
+  " attempt to change to the indicated directory
+  try
+   exe "cd ".escape(tmpdir,' \')
+  catch /^Vim\%((\a\+)\)\=:E344/
+   echo "***error*** (TarWrite) cannot cd to temporary directory"
+"   call Dret("tar#Write")
+   return
+  endtry
+"  call Decho("current directory now: ".getcwd())
+
+  " place temporary files under .../_TARVIM_/
+  if isdirectory("_TARVIM_")
+   call s:Rmdir("_TARVIM_")
+  endif
+  call mkdir("_TARVIM_")
+  cd _TARVIM_
+"  call Decho("current directory now: ".getcwd())
+
+  let tarfile = curdir."/".substitute(a:argument,'tarfile:\([^/]\{-}\)/.*$','\1','')
+  let path    = substitute(a:argument,'^.\{-}/','','')
+  let dirpath = substitute(path,'/\=[^/]\+$','','')
+"  call Decho("path   <".path.">")
+"  call Decho("dirpath<".dirpath.">")
+  call mkdir(dirpath,"p")
+  exe "w! ".path
+  if executable("cygpath")
+   let path    = substitute(system("cygpath ".path),'\n','','e')
+   let tarfile = substitute(system("cygpath ".tarfile),'\n','','e')
+  endif
+
+"  call Decho("tar --delete -f ".tarfile." ".path)
+  call system("tar --delete -f ".tarfile." ".path)
+  if v:shell_error != 0
+   echo "***error*** (TarWrite) sorry, your tar pgm doesn't support deletion of ".path
+  else
+"   call Decho("tar -rf ".tarfile." ".path)
+   call system("tar -rf ".tarfile." ".path)
+  endif
+  
+  " cleanup and restore current directory
+  cd ..
+  call s:Rmdir("_TARVIM_")
+  exe "cd ".escape(curdir,' \')
+  setlocal nomod
+
+"  call Dret("tar#Write")
+endfun
+
+" ---------------------------------------------------------------------
+"  tar#Browse: {{{1
+fun! tar#Browse(tarfile)
+"    call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
     setlocal noswapfile
     setlocal buftype=nofile
     setlocal bufhidden=hide
@@ -76,11 +157,12 @@
     endif
 
     if ! filereadable(l:tarfile)
-	echo "ERROR: File not readable:" l:tarfile
+	echo "***error*** (tar#Browse) File not readable:" l:tarfile
+"        call Dret("tar#Browse")
 	return
     endif
 
-    call s:Say("\" tar.vim version " . s:version)
+    call s:Say("\" tar.vim version " . g:loaded_tar)
     call s:Say("\" Browsing tarfile " . l:tarfile)
     call s:Say("\" Hit ENTER to view a file in a new window")
     call s:Say("")
@@ -89,12 +171,15 @@
     0d "blank line
     /^$/1
 
-    setlocal readonly
-    setlocal nomodifiable
-    noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
-endfunction
+    setlocal noma nomod ro
 
-function! s:TarBrowseSelect()
+    noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
+"    call Dret("tar#Browse")
+endfun
+
+" ---------------------------------------------------------------------
+"  TarBrowseSelect: {{{1
+fun! s:TarBrowseSelect()
     let l:line = getline(".")
 
     if (l:line =~ '^" ')
@@ -110,10 +195,12 @@
     new
     wincmd _
     execute "e " . l:selection
-endfunction
+endfun
 
-" kludge to deal with compressed archives
-function! s:TarCatCommand(tarfile)
+" ---------------------------------------------------------------------
+" TarCatCommand: kludge to deal with compressed archives {{{1
+fun! s:TarCatCommand(tarfile)
+"    call Dfunc("s:TarCatCommand(tarfile<".a:tarfile.">)")
     if a:tarfile =~# '\.\(gz\|tgz\|Z\)$'
 	let l:cat = "gzip -d -c"
     elseif a:tarfile =~# '\.bz2$'
@@ -121,10 +208,33 @@
     else
 	let l:cat = "cat"
     endif
+"    call Dret("s:TarCatCommand ".l:cat)
     return l:cat
-endfunction
+endfun
 
-function! s:Say(string)
+" ---------------------------------------------------------------------
+"  Say: {{{1
+fun! s:Say(string)
     let @" = a:string
     $ put
-endfunction
+endfun
+
+" ---------------------------------------------------------------------
+" Rmdir: {{{1
+fun! s:Rmdir(fname)
+"  call Dfunc("Rmdir(fname<".a:fname.">)")
+  if has("unix")
+   call system("/bin/rm -rf ".a:fname)
+  elseif has("win32") || has("win95") || has("win64") || has("win16")
+   if &shell =~? "sh$"
+    call system("/bin/rm -rf ".a:fname)
+   else
+    call system("del /S ".a:fname)
+   endif
+  endif
+"  call Dret("Rmdir")
+endfun
+
+" ---------------------------------------------------------------------
+"  Modelines: {{{1
+" vim:set ts=8 sts=4 sw=4 fdm=marker:
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 8494c8e..8731f29 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.0aa.  Last change: 2005 Jul 31
+*motion.txt*    For Vim version 7.0aa.  Last change: 2005 Sep 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -642,6 +642,8 @@
 i`							*v_i`* *i`*
 			Like a", a' and a`, but exclude the quotes and
 			repeating won't extend the Visual selection.
+			Special case: With a count of 2 the quotes are
+			included, but no extra white space as with a"/a'/a`.
 
 When used after an operator:
 For non-block objects:
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index ab14fb8..65e76b9 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Sep 13
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Sep 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -36,8 +36,6 @@
 
 When 'foldcolumn' is 1 show more + to be able to open all folds? (Donohue)
 
-After vi" another i" should include the quotes.
-
 Mac unicode patch (Da Woon Jung):
 - selecting proportional font breaks display
 - UTF-8 text causes display problems.  Font replacement causes this.
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index b18d908..424e653 100644
--- a/runtime/syntax/tex.vim
+++ b/runtime/syntax/tex.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	TeX
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change:	Aug 15, 2005
-" Version:	29
+" Last Change:	Sep 14, 2005
+" Version:	30
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Notes: {{{1
@@ -73,7 +73,7 @@
 if !exists("g:tex_fold_enabled")
  let g:tex_fold_enabled= 0
 elseif g:tex_fold_enabled && !has("folding")
- let g:sh_fold_enabled= 0;
+ let g:tex_fold_enabled= 0
  echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
 endif
 if g:tex_fold_enabled && &fdm == "manual"
