updated for version 7.0129
diff --git a/runtime/plugin/netrw.vim b/runtime/plugin/netrw.vim
index 0b7c616..85d7df7 100644
--- a/runtime/plugin/netrw.vim
+++ b/runtime/plugin/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: Handles file transfer and remote directory listing across a network
-" Last Change:	Aug 10, 2005
+" Last Change:	Aug 12, 2005
 " Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version:	60
+" Version:	61
 " License:	Vim License  (see vim's :help license)
 " Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr.
 "               Permission is hereby granted to use and distribute this code,
@@ -22,7 +22,7 @@
 if exists("g:loaded_netrw") || &cp
   finish
 endif
-let g:loaded_netrw  = "v60"
+let g:loaded_netrw  = "v61"
 if v:version < 700
  let loaded_explorer = 1
 endif
@@ -1079,6 +1079,9 @@
    return
   endif
 
+  " use buffer-oriented WinVars if buffer ones exist but window ones don't
+  call s:UseBufWinVars()
+
   " make this buffer modifiable
   setlocal ma nonu nowrap
 
@@ -1161,6 +1164,9 @@
    exe "silent doau BufReadPost ".fname
    keepjumps 1d
 
+   " save certain window-oriented variables into buffer-oriented variables
+   call s:BufWinVars()
+
    setlocal nonu nomod noma
 
 "   call Dret("NetBrowse : file<".fname.">")
@@ -1429,6 +1435,8 @@
 "  NetGetWord: it gets the directory named under the cursor
 fun! <SID>NetGetWord()
 "  call Dfunc("NetGetWord() line#".line("."))
+  call s:UseBufWinVars()
+
   if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt
    let dirname= "./"
    let curline= getline(".")
@@ -2166,6 +2174,9 @@
    set noautochdir
   endif
 
+  " use buffer-oriented WinVars if buffer ones exist but window ones don't
+  call s:UseBufWinVars()
+
   " find buffer number of buffer named precisely the same as a:dirname
   let bufnum= bufnr(a:dirname)
 "  call Decho("findbuf: bufnum=".bufnum)
@@ -2380,6 +2391,9 @@
   " record previous current directory
   let w:netrw_prvdir= b:netrw_curdir
 
+  " save certain window-oriented variables into buffer-oriented variables
+  call s:BufWinVars()
+
   setlocal noma nomod nonu bh=hide nobl
   if has("netbeans_intg") || has("sun_workshop")
    let &autochdir= keep_autochdir
@@ -3299,6 +3313,7 @@
   if exists("w:netrw_explore_mtchcnt")|let s:explore_mtchcnt = w:netrw_explore_mtchcnt|endif
   if exists("w:netrw_explore_bufnr")  |let s:explore_bufnr   = w:netrw_explore_bufnr  |endif
   if exists("w:netrw_explore_line")   |let s:explore_line    = w:netrw_explore_line   |endif
+  if exists("w:netrw_explore_list")   |let s:explore_list    = w:netrw_explore_list   |endif
 "  call Dret("SaveWinVars")
 endfun
 
@@ -3314,9 +3329,48 @@
   if exists("s:explore_mtchcnt")|let w:netrw_explore_mtchcnt = s:explore_mtchcnt|unlet s:explore_mtchcnt|endif
   if exists("s:explore_bufnr")  |let w:netrw_explore_bufnr   = s:explore_bufnr  |unlet s:explore_bufnr  |endif
   if exists("s:explore_line")   |let w:netrw_explore_line    = s:explore_line   |unlet s:explore_line   |endif
+  if exists("s:explore_list")   |let w:netrw_explore_list    = s:explore_list   |unlet s:explore_list   |endif
 "  call Dret("CopyWinVars")
 endfun
 
+" ---------------------------------------------------------------------
+" BufWinVars: (used by NetBrowse() and LocalBrowse()) {{{1
+"   To allow separate windows to have their own activities, such as
+"   Explore **/pattern, several variables have been made window-oriented.
+"   However, when the user splits a browser window (ex: ctrl-w s), these
+"   variables are not inherited by the new window.  BufWinVars() and
+"   UseBufWinVars() get around that.
+fun! s:BufWinVars()
+"  call Dfunc("BufWinVars()")
+  if exists("w:netrw_bannercnt")      |let b:netrw_bannercnt       = w:netrw_bannercnt      |endif
+  if exists("w:netrw_method")         |let b:netrw_method          = w:netrw_method         |endif
+  if exists("w:netrw_prvdir")         |let b:netrw_prvdir          = w:netrw_prvdir         |endif
+  if exists("w:netrw_explore_indx")   |let b:netrw_explore_indx    = w:netrw_explore_indx   |endif
+  if exists("w:netrw_explore_listlen")|let b:netrw_explore_listlen = w:netrw_explore_listlen|endif
+  if exists("w:netrw_explore_mtchcnt")|let b:netrw_explore_mtchcnt = w:netrw_explore_mtchcnt|endif
+  if exists("w:netrw_explore_bufnr")  |let b:netrw_explore_bufnr   = w:netrw_explore_bufnr  |endif
+  if exists("w:netrw_explore_line")   |let b:netrw_explore_line    = w:netrw_explore_line   |endif
+  if exists("w:netrw_explore_list")   |let b:netrw_explore_list    = w:netrw_explore_list   |endif
+"  call Dret("BufWinVars")
+endfun
+
+" ---------------------------------------------------------------------
+" UseBufWinVars: (used by NetBrowse() and LocalBrowse() {{{1
+"              Matching function to BufferWinVars()
+fun! s:UseBufWinVars()
+"  call Dfunc("UseBufWinVars()")
+  if exists("b:netrw_bannercnt")       && !exists("w:netrw_bannercnt")      |let w:netrw_bannercnt       = b:netrw_bannercnt      |endif
+  if exists("b:netrw_method")          && !exists("w:netrw_method")         |let w:netrw_method          = b:netrw_method         |endif
+  if exists("b:netrw_prvdir")          && !exists("w:netrw_prvdir")         |let w:netrw_prvdir          = b:netrw_prvdir         |endif
+  if exists("b:netrw_explore_indx")    && !exists("w:netrw_explore_indx")   |let w:netrw_explore_indx    = b:netrw_explore_indx   |endif
+  if exists("b:netrw_explore_listlen") && !exists("w:netrw_explore_listlen")|let w:netrw_explore_listlen = b:netrw_explore_listlen|endif
+  if exists("b:netrw_explore_mtchcnt") && !exists("w:netrw_explore_mtchcnt")|let w:netrw_explore_mtchcnt = b:netrw_explore_mtchcnt|endif
+  if exists("b:netrw_explore_bufnr")   && !exists("w:netrw_explore_bufnr")  |let w:netrw_explore_bufnr   = b:netrw_explore_bufnr  |endif
+  if exists("b:netrw_explore_line")    && !exists("w:netrw_explore_line")   |let w:netrw_explore_line    = b:netrw_explore_line   |endif
+  if exists("b:netrw_explore_list")    && !exists("w:netrw_explore_list")   |let w:netrw_explore_list    = b:netrw_explore_list   |endif
+"  call Dret("UseBufWinVars")
+endfun
+
 let &cpo= s:keepcpo
 unlet s:keepcpo
 " ------------------------------------------------------------------------