diff --git a/Filelist b/Filelist
index acc534cd6f7980dd098b4fa4fddf8def35008038..5adc1e7a05ebbc7319266c891d075d9218038729 100644
--- a/Filelist
+++ b/Filelist
@@ -505,6 +505,7 @@ RT_SCRIPTS =	\
 		runtime/makemenu.vim \
 		runtime/autoload/*.vim \
 		runtime/autoload/README.txt \
+		runtime/autoload/xml/*.vim \
 		runtime/colors/*.vim \
 		runtime/colors/README.txt \
 		runtime/compiler/*.vim \
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index d4e41f4d3ee8c95194726daa4a570eecd9041e18..e885e63a2a6bf8440929d885193bebde9de60288 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -217,6 +217,9 @@ Section "Vim executables and runtime files"
 	SetOutPath $0\autoload
 	File ${VIMRT}\autoload\*.*
 
+	SetOutPath $0\autoload\xml
+	File ${VIMRT}\autoload\xml\*.*
+
 	SetOutPath $0\syntax
 	File ${VIMRT}\syntax\*.*
 
diff --git a/runtime/autoload/README.txt b/runtime/autoload/README.txt
index dcefbf033d55fe4bff3d7c86bbf9d7b9dd4d2899..2190addf54e7007524009f74a9ac8f84af84438b 100644
--- a/runtime/autoload/README.txt
+++ b/runtime/autoload/README.txt
@@ -16,6 +16,6 @@ csscomplete.vim		HTML / CSS
 htmlcomplete.vim	HTML
 javascriptcomplete.vim  Javascript
 phpcomplete.vim		PHP
-pycomplete.vim		Python
+pythoncomplete.vim	Python
 syntaxcomplete.vim	from syntax highlighting
 xmlcomplete.vim		XML (uses files in the xml directory)
diff --git a/runtime/autoload/pycomplete.vim b/runtime/autoload/pythoncomplete.vim
similarity index 96%
rename from runtime/autoload/pycomplete.vim
rename to runtime/autoload/pythoncomplete.vim
index 56a6b4e26c94508f5ab5a08fd81a5226073db168..8365d78a1dc575516657bdb9fcf05bd5ae0d621f 100644
--- a/runtime/autoload/pycomplete.vim
+++ b/runtime/autoload/pythoncomplete.vim
@@ -1,4 +1,4 @@
-"pycomplete.vim - Omni Completion for python
+"pythoncomplete.vim - Omni Completion for python
 " Maintainer: Aaron Griffin
 " Version: 0.3
 " Last Updated: 23 January 2006
@@ -21,7 +21,7 @@ if !has('python')
     finish
 endif
 
-function! pycomplete#Complete(findstart, base)
+function! pythoncomplete#Complete(findstart, base)
     "findstart = 1 when we need to get the text length
     if a:findstart
         let line = getline('.')
@@ -43,7 +43,7 @@ function! pycomplete#Complete(findstart, base)
     "findstart = 0 when we need to return the list of completions
     else
         execute "python get_completions('" . a:base . "')"
-        return g:pycomplete_completions
+        return g:pythoncomplete_completions
     endif
 endfunction
 
@@ -64,7 +64,7 @@ LOCALDEFS = \
 def dbg(level,msg):
     debug_level = 1
     try:
-        debug_level = vim.eval("g:pycomplete_debug_level")
+        debug_level = vim.eval("g:pythoncomplete_debug_level")
     except:
         pass
     if level <= debug_level: print(msg)
@@ -119,9 +119,9 @@ def get_completions(base):
         else:
             completions.append(all)
         #dbg(10,"all completions: %s" % completions)
-        vim.command("let g:pycomplete_completions = %s" % completions)
+        vim.command("let g:pythoncomplete_completions = %s" % completions)
     except:
-        vim.command("let g:pycomplete_completions = []")
+        vim.command("let g:pythoncomplete_completions = []")
         #dbg(1,"exception: %s" % sys.exc_info()[1])
     clean_up()
 
@@ -346,6 +346,6 @@ sys.path.extend(['.','..'])
 PYTHONEOF
 endfunction
 
-let g:pycomplete_debug_level = 0
+let g:pythoncomplete_debug_level = 0
 call s:DefPython()
 " vim: set et ts=4:
diff --git a/runtime/autoload/xml/xhtml10s.vim b/runtime/autoload/xml/xhtml10s.vim
new file mode 100644
index 0000000000000000000000000000000000000000..503201380c77402abd000d3e6bc7c1201e015a59
--- /dev/null
+++ b/runtime/autoload/xml/xhtml10s.vim
@@ -0,0 +1,4046 @@
+let g:xmldata_xhtml10s = {
+\ 'vimxmlentities' : ["AElig", "Aacute", "Acirc", "Agrave", "Alpha", "Aring", "Atilde", "Auml", "Beta", "Ccedil", "Chi", "Dagger", "Delta", "ETH", "Eacute", "Ecirc", "Egrave", "Epsilon", "Eta", "Euml", "Gamma", "Iacute", "Icirc", "Igrave", "Iota", "Iuml", "Kappa", "Lambda", "Mu", "Ntilde", "Nu", "OElig", "Oacute", "Ocirc", "Ograve", "Omega", "Omicron", "Oslash", "Otilde", "Ouml", "Phi", "Pi", "Prime", "Psi", "Rho", "Scaron", "Sigma", "THORN", "TITY", "Tau", "Theta", "Uacute", "Ucirc", "Ugrave", "Upsilon", "Uuml", "Xi", "Yacute", "Yuml", "Zeta", "amp", "aacute", "acirc", "acute", "aelig", "agrave", "alefsym", "alpha", "and", "ang", "apos", "aring", "asymp", "atilde", "auml", "bdquo", "beta", "brvbar", "bull", "cap", "ccedil", "cedil", "cent", "chi", "circ", "clubs", "copy", "cong", "crarr", "cup", "curren", "dArr", "dagger", "darr", "deg", "delta", "diams", "divide", "eacute", "ecirc", "egrave", "empty", "ensp", "emsp", "epsilon", "equiv", "eta", "eth", "euro", "euml", "exist", "fnof", "forall", "frac12", "frac14", "frac34", "frasl", "gt", "gamma", "ge", "hArr", "harr", "hearts", "hellip", "iacute", "icirc", "iexcl", "igrave", "image", "infin", "int", "iota", "iquest", "isin", "iuml", "kappa", "lt", "laquo", "lArr", "lambda", "lang", "larr", "lceil", "ldquo", "le", "lfloor", "lowast", "loz", "lrm", "lsaquo", "lsquo", "macr", "mdash", "micro", "middot", "minus", "mu", "nbsp", "nabla", "ndash", "ne", "ni", "not", "notin", "nsub", "ntilde", "nu", "oacute", "ocirc", "oelig", "ograve", "oline", "omega", "omicron", "oplus", "or", "ordf", "ordm", "oslash", "otilde", "otimes", "ouml", "para", "part", "permil", "perp", "phi", "pi", "piv", "plusmn", "pound", "prime", "prod", "prop", "psi", "quot", "rArr", "raquo", "radic", "rang", "rarr", "rceil", "rdquo", "real", "reg", "rfloor", "rho", "rlm", "rsaquo", "rsquo", "sbquo", "scaron", "sdot", "sect", "shy", "sigma", "sigmaf", "sim", "spades", "sub", "sube", "sum", "sup", "sup1", "sup2", "sup3", "supe", "szlig", "tau", "there4", "theta", "thetasym", "thinsp", "thorn", "tilde", "times", "trade", "uArr", "uacute", "uarr", "ucirc", "ugrave", "uml", "upsih", "upsilon", "uuml", "weierp", "xi", "yacute", "yen", "yuml", "zeta", "zwj", "zwnj"],
+\ 'vimxmlattrinfo' : {
+\ 'accept' : ['ContentType', ''],
+\ 'accesskey' : ['Character', ''],
+\ 'action' : ['*URI', ''],
+\ 'align' : ['String', ''],
+\ 'alt' : ['*Text', ''],
+\ 'archive' : ['UriList', ''],
+\ 'axis' : ['CDATA', ''],
+\ 'border' : ['Pixels', ''],
+\ 'cellpadding' : ['Length', ''],
+\ 'cellspacing' : ['Length', ''],
+\ 'char' : ['Character', ''],
+\ 'charoff' : ['Length', ''],
+\ 'charset' : ['LangCode', ''],
+\ 'checked' : ['Bool', ''],
+\ 'class' : ['CDATA', 'Name of class, used for connecting element with style'],
+\ 'codetype' : ['ContentType', ''],
+\ 'cols' : ['*Number', ''],
+\ 'colspan' : ['Number', ''],
+\ 'content' : ['*CDATA', ''],
+\ 'coords' : ['Coords', ''],
+\ 'data' : ['URI', ''],
+\ 'datetime' : ['DateTime', ''],
+\ 'declare' : ['Bool', ''],
+\ 'defer' : ['Bool', ''],
+\ 'dir' : ['String', ''],
+\ 'disabled' : ['Bool', ''],
+\ 'enctype' : ['ContentType', ''],
+\ 'for' : ['ID', ''],
+\ 'headers' : ['IDREFS', ''],
+\ 'height' : ['Number', ''],
+\ 'href' : ['*URI', ''],
+\ 'hreflang' : ['LangCode', ''],
+\ 'id' : ['ID', 'Unique string'],
+\ 'ismap' : ['Bool', ''],
+\ 'label' : ['*Text', ''],
+\ 'lang' : ['LangCode', ''],
+\ 'longdesc' : ['URI', ''],
+\ 'maxlength' : ['Number', ''],
+\ 'media' : ['MediaDesc', ''],
+\ 'method' : ['String', ''],
+\ 'multiple' : ['Bool', ''],
+\ 'name' : ['CDATA', ''],
+\ 'nohref' : ['Bool', ''],
+\ 'onblur' : ['Script', ''],
+\ 'onchange' : ['Script', ''],
+\ 'onclick' : ['Script', ''],
+\ 'ondblclick' : ['Script', ''],
+\ 'onfocus' : ['Script', ''],
+\ 'onkeydown' : ['Script', ''],
+\ 'onkeypress' : ['Script', ''],
+\ 'onkeyup' : ['Script', ''],
+\ 'onload' : ['Script', ''],
+\ 'onmousedown' : ['Script', ''],
+\ 'onmousemove' : ['Script', ''],
+\ 'onmouseout' : ['Script', ''],
+\ 'onmouseover' : ['Script', ''],
+\ 'onmouseup' : ['Script', ''],
+\ 'onreset' : ['Script', ''],
+\ 'onselect' : ['Script', ''],
+\ 'onsubmit' : ['Script', ''],
+\ 'onunload' : ['Script', ''],
+\ 'profile' : ['URI', ''],
+\ 'readonly' : ['Bool', ''],
+\ 'rel' : ['LinkTypes', ''],
+\ 'rev' : ['LinkTypes', ''],
+\ 'rows' : ['*Number', ''],
+\ 'rules' : ['String', ''],
+\ 'scheme' : ['CDATA', ''],
+\ 'selected' : ['Bool', ''],
+\ 'shape' : ['Shape', ''],
+\ 'size' : ['CDATA', ''],
+\ 'span' : ['Number', ''],
+\ 'src' : ['*URI', ''],
+\ 'standby' : ['Text', ''],
+\ 'style' : ['StyleSheet', ''],
+\ 'summary' : ['*Text', ''],
+\ 'tabindex' : ['Number', ''],
+\ 'title' : ['Text', ''],
+\ 'type' : ['*ContentType', ''],
+\ 'usemap' : ['URI', ''],
+\ 'valign' : ['String', ''],
+\ 'valuetype' : ['String', ''],
+\ 'width' : ['Number', ''],
+\ 'xmlns' : ['URI', '']
+\ },
+\ 'vimxmltaginfo' : {
+\ 'base' : ['/>', ''],
+\ 'meta' : ['/>', ''],
+\ 'link' : ['/>', ''],
+\ 'img' : ['/>', ''],
+\ 'hr' : ['/>', ''],
+\ 'br' : ['/>', ''],
+\ 'param' : ['/>', ''],
+\ 'area' : ['/>', ''],
+\ 'input' : ['/>', ''],
+\ 'col' : ['/>', '']
+\ },
+\ 'tr' : [
+\ [
+\ 'th',
+\ 'td'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'charoff' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'align' : [
+\ 'left',
+\ 'center',
+\ 'right',
+\ 'justify',
+\ 'char'
+\ ],
+\ 'valign' : [
+\ 'top',
+\ 'middle',
+\ 'bottom',
+\ 'baseline'
+\ ],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'char' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'input' : [[],
+\ {
+\ 'ondblclick' : [],
+\ 'onchange' : [],
+\ 'readonly' : [
+\  'BOOL'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'src' : [],
+\ 'value' : [],
+\ 'name' : [],
+\ 'checked' : [
+\ 'BOOL'
+\ ],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'type' : [
+\ 'text',
+\ 'password',
+\ 'checkbox',
+\ 'radio',
+\ 'submit',
+\ 'reset',
+\ 'file',
+\ 'hidden',
+\ 'image',
+\ 'button'
+\ ],
+\ 'accesskey' : [],
+\ 'disabled' : [
+\  'BOOL'
+\ ],
+\ 'usemap' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'size' : [],
+\ 'onblur' : [],
+\ 'onfocus' : [],
+\ 'maxlength' : [],
+\ 'onselect' : [],
+\ 'accept' : [],
+\ 'alt' : [],
+\ 'tabindex' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'xml:lang' : []
+\ }
+\ ],
+\ 'table' : [
+\ [
+\ 'caption',
+\ 'col',
+\ 'colgroup',
+\ 'thead',
+\ 'tfoot',
+\ 'tbody',
+\ 'tr'
+\ ],
+\ {
+\ 'width' : [],
+\ 'frame' : [
+\ 'void',
+\ 'above',
+\ 'below',
+\ 'hsides',
+\ 'lhs',
+\ 'rhs',
+\ 'vsides',
+\ 'box',
+\ 'border'
+\ ],
+\ 'ondblclick' : [],
+\ 'rules' : [
+\ 'none',
+\ 'groups',
+\ 'rows',
+\ 'cols',
+\ 'all'
+\ ],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'summary' : [],
+\ 'onkeyup' : [],
+\ 'cellspacing' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'border' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'cellpadding' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'form' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onsubmit' : [],
+\ 'enctype' : [
+\ '',
+\ 'application/x-www-form-urlencoded',
+\ ],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onreset' : [],
+\ 'onmouseup' : [],
+\ 'method' : [
+\ 'get',
+\ 'post'
+\ ],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'accept' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'accept-charset' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'action' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'h5' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'meta' : [[],
+\ {
+\ 'http-equiv' : [],
+\ 'lang' : [],
+\ 'name' : [],
+\ 'scheme' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ]
+\ }
+\ ],
+\ 'map' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript',
+\ 'area'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'name' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'style' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'title' : [],
+\ 'onclick' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'tfoot' : [
+\ [
+\ 'tr'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'charoff' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'align' : [
+\ 'left',
+\ 'center',
+\ 'right',
+\ 'justify',
+\ 'char'
+\ ],
+\ 'valign' : [
+\ 'top',
+\ 'middle',
+\ 'bottom',
+\ 'baseline'
+\ ],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'char' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'caption' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'code' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'base' : [[],
+\ {
+\ 'href' : []
+\ }
+\ ],
+\ 'br' : [[],
+\ {
+\ 'style' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'id' : []
+\ }
+\ ],
+\ 'acronym' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'strong' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'h4' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'em' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'b' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'q' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : [],
+\ 'cite' : []
+\ }
+\ ],
+\ 'span' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'title' : [
+\ {
+\ 'lang' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ]
+\ }
+\ ],
+\ 'small' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'area' : [[],
+\ {
+\ 'accesskey' : [],
+\ 'coords' : [],
+\ 'ondblclick' : [],
+\ 'onblur' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onfocus' : [],
+\ 'nohref' : [
+\ 'BOOL'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'href' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'alt' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'shape' : [
+\ 'rect',
+\ 'circle',
+\ 'poly',
+\ 'default'
+\ ]
+\ }
+\ ],
+\ 'body' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onunload' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onload' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'ol' : [
+\ [
+\ 'li'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'html' : [
+\ [
+\ 'head',
+\ 'body'
+\ ],
+\ {
+\ 'xmlns' : [
+\ 'http://www.w3.org/1999/xhtml',
+\ ],
+\ 'lang' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ]
+\ }
+\ ],
+\ 'var' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'ul' : [
+\ [
+\ 'li'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'del' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'datetime' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'cite' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'blockquote' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\  'ltr',
+\  'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : [],
+\ 'cite' : []
+\ }
+\ ],
+\ 'style' : [[],
+\ {
+\ 'lang' : [],
+\ 'media' : [],
+\ 'title' : [],
+\ 'type' : [],
+\ 'xml:space' : [
+\ 'preserve'
+\ ],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ]
+\ }
+\ ],
+\ 'dfn' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'h3' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'textarea' : [[], 
+\ {
+\ 'accesskey' : [],
+\ 'disabled' : [
+\ 'disabled'
+\ ],
+\ 'ondblclick' : [],
+\ 'rows' : [],
+\ 'onblur' : [],
+\ 'cols' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onchange' : [],
+\ 'onfocus' : [],
+\ 'readonly' : [
+\ 'BOOL'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onselect' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'name' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'a' : [
+\ [
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'accesskey' : [],
+\ 'rel' : [],
+\ 'coords' : [],
+\ 'ondblclick' : [],
+\ 'onblur' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onfocus' : [],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'href' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'lang' : [],
+\ 'name' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'charset' : [],
+\ 'hreflang' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'rev' : [],
+\ 'shape' : [
+\ 'rect',
+\ 'circle',
+\ 'poly',
+\ 'default'
+\ ],
+\ 'type' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'img' : [[],
+\ {
+\ 'width' : [],
+\ 'ismap' : [
+\ 'BOOL'
+\ ],
+\ 'usemap' : [],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'alt' : [],
+\ 'longdesc' : [],
+\ 'src' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'height' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'tt' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'thead' : [
+\ [
+\ 'tr'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'charoff' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'align' : [
+\ 'left',
+\ 'center',
+\ 'right',
+\ 'justify',
+\ 'char'
+\ ],
+\ 'valign' : [
+\ 'top',
+\ 'middle',
+\ 'bottom',
+\ 'baseline'
+\ ],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'char' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'abbr' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'h6' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'sup' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'address' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'param' : [[],
+\ {
+\ 'value' : [],
+\ 'name' : [],
+\ 'type' : [],
+\ 'valuetype' : [
+\ 'data',
+\ 'ref',
+\ 'object'
+\ ],
+\ 'id' : []
+\ }
+\ ],
+\ 'th' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'headers' : [],
+\ 'ondblclick' : [],
+\ 'axis' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'abbr' : [],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'h1' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'head' : [
+\ [
+\ 'script',
+\ 'style',
+\ 'meta',
+\ 'link',
+\ 'object',
+\ 'title',
+\ 'script',
+\ 'style',
+\ 'meta',
+\ 'link',
+\ 'object',
+\ 'base',
+\ 'script',
+\ 'style',
+\ 'meta',
+\ 'link',
+\ 'object',
+\ 'base',
+\ 'script',
+\ 'style',
+\ 'meta',
+\ 'link',
+\ 'object',
+\ 'title',
+\ 'script',
+\ 'style',
+\ 'meta',
+\ 'link',
+\ 'object'
+\ ],
+\ {
+\ 'profile' : [],
+\ 'lang' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ]
+\ }
+\ ],
+\ 'tbody' : [
+\ [
+\ 'tr'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'charoff' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'align' : [
+\ 'left',
+\ 'center',
+\ 'right',
+\ 'justify',
+\ 'char'
+\ ],
+\ 'valign' : [
+\ 'top',
+\ 'middle',
+\ 'bottom',
+\ 'baseline'
+\ ],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'char' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'legend' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'accesskey' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'dd' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'hr' : [[],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'li' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'td' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'headers' : [],
+\ 'ondblclick' : [],
+\ 'axis' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'abbr' : [],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'label' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'for' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'dl' : [
+\ [
+\ 'dt',
+\ 'dd'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'kbd' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'div' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'object' : [
+\ [
+\ 'param',
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'width' : [],
+\ 'usemap' : [],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'standby' : [],
+\ 'archive' : [],
+\ 'lang' : [],
+\ 'classid' : [],
+\ 'name' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'data' : [],
+\ 'height' : [],
+\ 'xml:lang' : [],
+\ 'codetype' : [],
+\ 'declare' : [
+\  'BOOL'
+\ ],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'type' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'codebase' : []
+\ }
+\ ],
+\ 'dt' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'pre' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'xml:space' : [
+\ 'preserve'
+\ ],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'samp' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'col' : [[],
+\ {
+\ 'disabled' : [
+\ 'disabled'
+\ ],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'value' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'label' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'selected' : [
+\ 'BOOL'
+\ ]
+\ }
+\ ],
+\ 'cite' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'i' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'select' : [
+\ [
+\ 'optgroup',
+\ 'option'
+\ ],
+\ {
+\ 'disabled' : [
+\ 'BOOL'
+\ ],
+\ 'ondblclick' : [],
+\ 'onblur' : [],
+\ 'size' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onchange' : [],
+\ 'onfocus' : [],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'name' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'multiple' : [
+\ 'multiple'
+\ ],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'link' : [[],
+\ {
+\ 'rel' : [],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'media' : [],
+\ 'href' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'charset' : [],
+\ 'hreflang' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'rev' : [],
+\ 'type' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'script' : [[],
+\ {
+\ 'defer' : [
+\ 'BOOL'
+\ ],
+\ 'src' : [],
+\ 'type' : [],
+\ 'charset' : [],
+\ 'xml:space' : [
+\  'preserve'
+\  ]
+\ }
+\ ],
+\ 'bdo' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'colgroup' : [
+\ [
+\ 'col'
+\ ],
+\ {
+\ 'width' : [],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'charoff' : [],
+\ 'onmouseover' : [],
+\ 'align' : [
+\  'left',
+\  'center',
+\  'right',
+\  'justify',
+\  'char'
+\ ],
+\ 'lang' : [],
+\ 'valign' : [
+\ 'top',
+\ 'middle',
+\ 'bottom',
+\ 'baseline'
+\ ],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'char' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : [],
+\ 'span' : [
+\ '',
+\ '1',
+\ ]
+\ }
+\ ],
+\ 'h2' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'ins' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'ondblclick' : [],
+\ 'datetime' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'cite' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'p' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'sub' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'big' : [
+\ [
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'fieldset' : [
+\ [
+\ 'legend',
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'a',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'input',
+\ 'select',
+\ 'textarea',
+\ 'label',
+\ 'button',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'noscript' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'fieldset',
+\ 'table',
+\ 'form',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'onmouseout' : [],
+\ 'onmousemove' : [],
+\ 'style' : [],
+\ 'ondblclick' : [],
+\ 'xml:lang' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onkeypress' : [],
+\ 'onmousedown' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'class' : [],
+\ 'title' : [],
+\ 'onclick' : []
+\ }
+\ ],
+\ 'button' : [
+\ [
+\ 'p',
+\ 'h1',
+\ 'h2',
+\ 'h3',
+\ 'h4',
+\ 'h5',
+\ 'h6',
+\ 'div',
+\ 'ul',
+\ 'ol',
+\ 'dl',
+\ 'pre',
+\ 'hr',
+\ 'blockquote',
+\ 'address',
+\ 'table',
+\ 'br',
+\ 'span',
+\ 'bdo',
+\ 'object',
+\ 'img',
+\ 'map',
+\ 'tt',
+\ 'i',
+\ 'b',
+\ 'big',
+\ 'small',
+\ 'em',
+\ 'strong',
+\ 'dfn',
+\ 'code',
+\ 'q',
+\ 'sub',
+\ 'sup',
+\ 'samp',
+\ 'kbd',
+\ 'var',
+\ 'cite',
+\ 'abbr',
+\ 'acronym',
+\ 'ins',
+\ 'del',
+\ 'script',
+\ 'noscript'
+\ ],
+\ {
+\ 'accesskey' : [],
+\ 'disabled' : [
+\ 'disabled'
+\ ],
+\ 'ondblclick' : [],
+\ 'onblur' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onfocus' : [],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'tabindex' : [],
+\ 'lang' : [],
+\ 'value' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'name' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'type' : [
+\ 'button',
+\ 'submit',
+\ 'reset'
+\ ],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ],
+\ 'optgroup' : [
+\ [
+\ 'option'
+\ ],
+\ {
+\ 'disabled' : [
+\ 'disabled'
+\ ],
+\ 'ondblclick' : [],
+\ 'dir' : [
+\ 'ltr',
+\ 'rtl'
+\ ],
+\ 'onkeydown' : [],
+\ 'onkeyup' : [],
+\ 'onmouseup' : [],
+\ 'id' : [],
+\ 'onmouseover' : [],
+\ 'lang' : [],
+\ 'style' : [],
+\ 'onmousemove' : [],
+\ 'onmouseout' : [],
+\ 'xml:lang' : [],
+\ 'onmousedown' : [],
+\ 'onkeypress' : [],
+\ 'label' : [],
+\ 'onclick' : [],
+\ 'title' : [],
+\ 'class' : []
+\ }
+\ ]
+\ }
diff --git a/runtime/autoload/xml/xsl.vim b/runtime/autoload/xml/xsl.vim
new file mode 100644
index 0000000000000000000000000000000000000000..5fce4779fddfe14b806e4b3a893826dbf998c2a6
--- /dev/null
+++ b/runtime/autoload/xml/xsl.vim
@@ -0,0 +1,37 @@
+let g:xmldata_xsl = {
+	\ 'apply-imports' : [[], {}],
+    \ 'apply-templates' : [['sort', 'with-param'], {'select' : [], 'mode' : []}],
+    \ 'attribute' : [[], {'name' : [], 'namespace' : []}],
+    \ 'attribute-set' : [['attribute'], {'name' : [], 'use-attribute-sets' : []}],
+    \ 'call-template' : [['with-param'], {'name' : []}],
+    \ 'choose' : [['when', 'otherwise'], {}],
+    \ 'comment' : [[], {}],
+    \ 'copy' : [[], {'use-attribute-sets' : []}],
+    \ 'copy-of' : [[], {'select' : []}],
+    \ 'decimal-format' : [[], {'name' : [], 'decimal-separator' : [], 'grouping-separator' : [], 'infinity' : [], 'minus-sign' : [], 'NaN' : [], 'percent' : [], 'per-mille' : [], 'zero-digit' : [], 'digit' : [], 'pattern-separator' : []}],
+    \ 'element' : [[], {'name' : [], 'namespace' : [], 'use-attribute-sets' : []}],
+    \ 'fallback' : [[], {}],
+    \ 'for-each' : [['sort'], {'select' : []}],
+    \ 'if' : [[], {'test' : []}],
+    \ 'import' : [[], {'href' : []}],
+    \ 'include' : [[], {'href' : []}],
+    \ 'key' : [[], {'name' : [], 'match' : [], 'use' : []}],
+    \ 'message' : [[], {'terminate' : ['yes', 'no']}],
+    \ 'namespace-alias' : [[], {'stylesheet-prefix' : ['#default'], 'result-prefix' : ['#default']}],
+    \ 'number' : [[], {'level' : ['single', 'multiple', 'any'], 'count' : [], 'from' : [], 'value' : [], 'format' : [], 'lang' : [], 'letter-value' : ['alphabetic', 'traditional'], 'grouping-separator' : [], 'grouping-size' : []}],
+    \ 'otherwise' : [[], {}],
+    \ 'output' : [[], {'method' : ['xml', 'html', 'text'], 'version' : [], 'encoding' : [], 'omit-xml-declaration' : ['yes', 'no'], 'standalone' : ['yes', 'no'], 'doctype-public' : [], 'doctype-system' : [], 'cdata-section-elements' : [], 'indent' : ['yes', 'no'], 'media-type' : []}],
+    \ 'param' : [[], {'name' : [], 'select' : []}],
+    \ 'preserve-space' : [[], {'elements' : []}],
+    \ 'processing-instruction' : [[], {'name' : []}],
+    \ 'sort' : [[], {'select' : [], 'lang' : [], 'data-type' : ['text', 'number'], 'order' : ['ascending', 'descending'], 'case-order' : ['upper-first', 'lower-first']}],
+    \ 'strip-space' : [[], {'elements' : []}],
+    \ 'stylesheet' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'version' : []}],
+    \ 'template' : [['param'], {'match' : [], 'name' : [], 'priority' : [], 'mode' : []}],
+    \ 'text' : [[], {'disable-output-escaping' : ['yes', 'no']}],
+    \ 'transform' : [['import', 'attribute-set', 'decimal-format', 'include', 'key', 'namespace-alias', 'output', 'param', 'preserve-space', 'strip-space', 'template'], {'id' : [], 'extension-element-prefixes' : [], 'exclude-result-prefixes' : [], 'version' : []}],
+    \ 'value-of' : [[], {'select' : [], 'disable-output-escaping' : ['yes', 'no']}],
+    \ 'variable' : [[], {'name' : [], 'select' : []}],
+    \ 'when' : [[], {'test' : []}],
+    \ 'with-param' : [[], {'name' : [], 'select' : []}]}
+
diff --git a/runtime/autoload/xmlcomplete.vim b/runtime/autoload/xmlcomplete.vim
index 582dc106680c5bcd7b82f5e6926fdb6c14d9c670..60ed919e1f6c79bf09619d45a76542c5995db55b 100644
--- a/runtime/autoload/xmlcomplete.vim
+++ b/runtime/autoload/xmlcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	XML
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 Mar 31
+" Last Change:	2006 Apr 12
 
 " This function will create Dictionary with users namespace strings and values
 " canonical (system) names of data files.  Names should be lowercase,
@@ -11,7 +11,7 @@
 " Currently supported canonicals are:
 " xhtml10s - XHTML 1.0 Strict
 " xsl      - XSL
-function! xmlcomplete#CreateConnection(canonical, ...)
+function! xmlcomplete#CreateConnection(canonical, ...) " {{{
 
 	" When only one argument provided treat name as default namespace (without
 	" 'prefix:').
@@ -42,14 +42,16 @@ function! xmlcomplete#CreateConnection(canonical, ...)
 	let g:xmldata_connection[users] = a:canonical
 
 endfunction
+" }}}
 
-function! xmlcomplete#CreateEntConnection(...)
+function! xmlcomplete#CreateEntConnection(...) " {{{
 	if a:0 > 0
 		let g:xmldata_entconnect = a:1
 	else
 		let g:xmldata_entconnect = 'DEFAULT'
 	endif
 endfunction
+" }}}
 
 function! xmlcomplete#CompleteTags(findstart, base)
   if a:findstart
@@ -104,7 +106,7 @@ function! xmlcomplete#CompleteTags(findstart, base)
     return start
 
   else
-	" There is no connction of namespace and data file. Abandon action
+	" There is no connection of namespace and data file. Abandon action
 	if !exists("g:xmldata_connection") || g:xmldata_connection == {}
 		return []
 	endif
@@ -305,7 +307,6 @@ function! xmlcomplete#CompleteTags(findstart, base)
 	endif
 
 	" Complete text declaration
-	let g:co = context
 	if context =~ '^?'
 		let tags = ['?xml']
 
@@ -329,7 +330,7 @@ function! xmlcomplete#CompleteTags(findstart, base)
 	    let tags = keys(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]})
 		call filter(tags, 'v:val !~ "^vimxml"')
 	else
-		if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, tag)
+		if !has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, opentag)
 			" Abandon when data file isn't complete
 			return []
 		endif
@@ -346,6 +347,11 @@ function! xmlcomplete#CompleteTags(findstart, base)
 		endif
 	endfor
 	let menu = res + res2
+	if b:xml_namespace == 'DEFAULT'
+		let xml_namespace = ''
+	else
+		let xml_namespace = b:xml_namespace.':'
+	endif
 	if has_key(g:xmldata{'_'.g:xmldata_connection[b:xml_namespace]}, 'vimxmltaginfo')
 		let final_menu = []
 		for i in range(len(menu))
@@ -357,22 +363,18 @@ function! xmlcomplete#CompleteTags(findstart, base)
 				let m_menu = ''
 				let m_info = ''
 			endif
-			if b:xml_namespace == 'DEFAULT'
-				let xml_namespace = ''
-			else
-				let xml_namespace = b:xml_namespace.':'
-			endif
 			let final_menu += [{'word':xml_namespace.item, 'menu':m_menu, 'info':m_info}]
 		endfor
 	else
-		let final_menu = menu
+		let final_menu = map(menu, 'xml_namespace.v:val')
 	endif
+
 	return final_menu
 
   endif
 endfunction
 
-" MM: This is greatly reduced closetag.vim used with kind permission of Steven
+" MM: This is severely reduced closetag.vim used with kind permission of Steven
 "     Mueller
 "     Changes: strip all comments; delete error messages; add checking for
 "     namespace
@@ -510,3 +512,4 @@ endfunction
 function! s:Clearstack(sname)
 	exe 'let '.a:sname."=''"
 endfunction
+" vim:set foldmethod=marker:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index deaf590ae44fb36e9ce2a2ac0939055528e64c2a..d7c54406163641281126d1883c9237f838b45d3b 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0d.  Last change: 2006 Apr 11
+*options.txt*	For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5439,7 +5439,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 
 						*'sessionoptions'* *'ssop'*
 'sessionoptions' 'ssop'	string	(default: "blank,buffers,curdir,folds,
-							help,options,winsize")
+					       help,options,tabpages,winsize")
 			global
 			{not in Vi}
 			{not available when compiled without the +mksession
@@ -5468,6 +5468,9 @@ A jump table for the options with a short description can be found at |Q_op|.
 			systems)
 	   slash	backslashes in file names replaced with forward
 			slashes
+	   tabpages	all tab pages; without this only the current tab page
+			is restored, so that you can make a session for each
+			tab page separately
 	   unix		with Unix end-of-line format (single <NL>), even when
 			on Windows or DOS
 	   winpos	position of the whole Vim window
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 80933c08ec07a99780cba8b91cfe0d1a39d56451..56cdf05f64e145e164abf0c069661bd11be42384 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0d.  Last change: 2006 Apr 06
+*spell.txt*	For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1296,12 +1296,14 @@ means that the word plus affix cannot be used in a compound word.  Example:
 		util/ac ~
 
 This allows for "wordutil" and "wordutils" but not "wordutilize".
+Note: this doesn't work for postponed prefixes yet.
 
 						    *spell-COMPOUNDPERMITFLAG*
 The COMPOUNDPERMITFLAG specifies a flag that can be used on an affix.  It
 means that the word plus affix can also be used in a compound word in a way
 where the affix ends up halfway the word.  Without this flag that is not
 allowed.
+Note: this doesn't work for postponed prefixes yet.
 
 						    *spell-COMPOUNDROOT*
 The COMPOUNDROOT flag is used for words in the dictionary that are already a
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 7fa442d5aa623d4cb18f71d968cec610f337147c..a16484982cccd46934d2447b60c26748bf99841a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7349,6 +7349,7 @@ undo-branches	undo.txt	/*undo-branches*
 undo-commands	undo.txt	/*undo-commands*
 undo-redo	undo.txt	/*undo-redo*
 undo-remarks	undo.txt	/*undo-remarks*
+undo-tree	undo.txt	/*undo-tree*
 undo-two-ways	undo.txt	/*undo-two-ways*
 undo.txt	undo.txt	/*undo.txt*
 undo_ftplugin	usr_41.txt	/*undo_ftplugin*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 6ca47b61f72ac58f3490779c4641cf93a4769813..0ff82d716aa6cd24364cbd3798283f2cd4ffaae4 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0d.  Last change: 2006 Apr 11
+*todo.txt*      For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,35 +30,10 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Include autoload/xml/*.vim files?  Need to adjust install scripts then.
-
-":mkspell" still takes much too long in Hungarian dictionary.
-- Are all prefixes really postponed now?
-- postpone secondary suffixes?
-
-Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
-    WFP_COMPPERMIT and WFP_COMPFORBID
-
-Use ~/tmp/hungarian*.txt to test dictionary with.
-
-New Hungarian dictionary. (Laci Nemeth)
--   implement use of <compoptions> in .spl file:
--   implement CHECKCOMPOUNDREP: when a compound word seems to be OK apply REP
-    items and theck if the result is a valid word.
--   implement CHECKCOMPOUNDDUP
--   implement CHECKCOMPOUNDTRIPLE
--   Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
-    How is it supposed to work?
--   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
-
-Update vi_diff.txt for Vim 7 features.
-
-8   tab pages in the session file, if "tabpages" in 'sessionoptions'
+Do some of the 'cindent' bugs below.
 
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
-Do some of the 'cindent' bugs below.
-
 Win32: Describe how to do debugging. (George Reilly)
 
 Mac unicode patch (Da Woon Jung, Eckehard Berns):
@@ -100,7 +75,10 @@ Awaiting updated patches:
     been given values.
     Add section in help files for these highlight groups?
 8   "fg" and "bg" don't work in an xterm.  Get default colors from xterm
-    with an ESC sequence.  Ideas in: ~/vim/patches/vikas.xtermcolors .
+    with an ESC sequence.
+    xterm can send colors for many things.  E.g. for the cursor:
+	<Esc>]12;?<Bel>
+    Can use this to get the background color and restore the colors on exit.
 7   Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Marcin
     Dalecki has a patch for Motif and Carbon)
 -   Add possibility to highlight specific columns (for Fortran).  Or put a
@@ -1114,11 +1092,21 @@ Tab pages:
 
 
 Spell checking:
--   Check out Hunspell 1.1.4.
-    The manpage doesn't match the source code...
-    Try to make the newly added features compatible.
-    what does MAXNGRAMSUGS do?
-    is COMPLEXPREFIXES necessary when we have flags for affixes?
+-   Considering Hunspell 1.1.4:
+    What does MAXNGRAMSUGS do?
+    Is COMPLEXPREFIXES necessary when we have flags for affixes?
+8   ":mkspell" still takes much too long in Hungarian dictionary from
+    hunspell.  Only solution appears to be to postpone secondary suffixes.
+8   Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
+    WFP_COMPPERMIT and WFP_COMPFORBID
+8   implement use of <compoptions> in .spl file:
+    implement CHECKCOMPOUNDREP: when a compound word seems to be OK apply REP
+    items and theck if the result is a valid word.
+    implement CHECKCOMPOUNDDUP
+    implement CHECKCOMPOUNDTRIPLE
+    Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
+    How is it supposed to work?
+8   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
 -   Add a command the repeats ]s and z=, showing the misspelled word in its
     context.  Thus to spell-check a whole file.
 -   suggestion for "KG" to "kg" when it's keepcase.
@@ -2248,15 +2236,6 @@ Insert mode:
 
 
 'cindent', 'smartindent':
-8   Aligning with "e" of "error" because of the ':' doesn't make sense:
-	cout << (  a ? f() : "error")
-8   Wrong indent with default settings when (dl) appears in this line:
-	    (dl)->barbar(
-			 dk);
-    When "(dl)" is changed to "dl" it uses 'sw' * 2 as expected.
-8   Wrong indent below ? : with ():
-	if ((a ? (b) : c) != 0)
-		       aligns with ":".
 8   Using "+" part of 'cinoptions' where it's not expected (Alexei Alexandrov):
 	if (a)
 	{
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index d94de2b47910b0a0a36a5ba91194aabe60400d5f..0985c96af34a8eed06cede1d7dd4681a5c0d4a7a 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.0d.  Last change: 2006 Mar 24
+*undo.txt*      For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -106,7 +106,7 @@ After this an "u" command will undo the delete command and the previous
 change.
 
 ==============================================================================
-4. Undo branches					*undo-branches*
+4. Undo branches				*undo-branches* *undo-tree*
 
 Above we only discussed one line of undo/redo.  But it is also possible to
 branch off.  This happens when you undo a few changes and then make a new
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 4afaaeb49a72b9c4b547294fecd2598ba767130a..356e686f2b1eeeb25848ef32adb02224e2b6ca5e 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0d.  Last change: 2006 Apr 11
+*version7.txt*  For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2442,5 +2442,28 @@ Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
 created in the administrator directory instead of "All Users".  Define the
 CSIDL_ items if they are missing.
 
+Motif: The GUI tabline did not use the space above the right scrollbar.  Work
+around a bug in the Motif library. (Yegappan Lakshmanan)
+
+The extra files for XML Omni completion are now also installed.
+|xml-omni-datafile|
+
+GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
+<F10> GTK produced error messages.  Now do create the menu but disable it just
+after the first gui_mch_update().
+
+":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
+project.  Back to the Myspell dictionary.
+
+In help files hide the | used around tags.
+
+Renamed pycomplete to pythoncomplete.
+
+Added "tabpages" to 'sessionoptions'.
+
+When 'guitablabel' is set the effect wasn't visible right away.
+
+Fixed a few 'cindent' errors.
+
 
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 307eb05fe1958663f94f0e614796175c7e9cf364..00497e159c9978783ff10a6582ca94207c287df8 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.0d.  Last change: 2006 Jan 02
+*vi_diff.txt*   For Vim version 7.0d.  Last change: 2006 Apr 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -103,13 +103,12 @@ The option 'maxmem' ('mm') is used to set the maximum memory used for one
 buffer (in kilobytes).  'maxmemtot' is used to set the maximum memory used for
 all buffers (in kilobytes).  The defaults depend on the system used.  For the
 Amiga and MS-DOS, 'maxmemtot' is set depending on the amount of memory
-available.  If you don't like Vim to swap to a file, set 'maxmem' and
-'maxmemtot' to a very large value.  The swap file will then only be used for
-recovery.  If you don't want a swap file at all, set 'updatecount' to 0, or
-use the "-n" argument when starting Vim.  Note that the 'maxmem' option is
-only used when a buffer is created.  Changing this option does not affect
-buffers that have already been loaded.  Thus you can set it to different
-values for different files.  'maxmemtot' works always.
+available.
+These are not hard limits, but tell Vim when to move text into a swap file.
+If you don't like Vim to swap to a file, set 'maxmem' and 'maxmemtot' to a
+very large value.  The swap file will then only be used for recovery.  If you
+don't want a swap file at all, set 'updatecount' to 0, or use the "-n"
+argument when starting Vim.
 
 ==============================================================================
 4. The most interesting additions			*vim-additions*
@@ -123,7 +122,8 @@ Vi compatibility.					|'compatible'|
 		:set nocompatible
 	Or start Vim with the "-N" argument:
 		vim -N
-	This is done automatically if you have a .vimrc file.  See |startup|.
+	Vim starts with 'nocompatible' automatically if you have a .vimrc
+	file.  See |startup|.
 	The 'cpoptions' option can be used to set Vi compatibility on/off for
 	a number of specific items.
 
@@ -142,17 +142,23 @@ Support for different systems.
 	- Macintosh
 	- Risc OS
 	- IBM OS/390
+	Note that on some systems features need to be disabled to reduce
+	resource usage, esp. on MS-DOS.  For some outdated systems you need to
+	use an older Vim version.
 
 Multi level undo.					|undo|
 	'u' goes backward in time, 'CTRL-R' goes forward again.  Set option
 	'undolevels' to the number of changes to be remembered (default 1000).
 	Set 'undolevels' to 0 for a vi-compatible one level undo.  Set it to
 	-1 for no undo at all.
-
 	When all changes in a buffer have been undone, the buffer is not
 	considered changed anymore.  You can exit it with :q, without <!>.
+	When undoing a few changes and then making a new change Vim will
+	create a branch in the undo tree.  This means you can go back to any
+	state of the text, there is no risc of a change causing text to be
+	lost forever. |undo-tree|
 
-Graphical User Interface (GUI)				|gui|
+Graphical User Interface (GUI).				|gui|
 	Included support for GUI: menu's, mouse, scrollbars, etc.  You can
 	define your own menus.  Better support for CTRL/SHIFT/ALT keys in
 	combination with special keys and mouse.  Supported for various
@@ -165,58 +171,78 @@ Multiple windows and buffers.				|windows.txt|
 	can still be loaded (and changed) but not displayed in a window.  This
 	is called a hidden buffer.  Many commands and options have been added
 	for this facility.
+	Vim can also use multiple tab pages, each with one or more windows.  A
+	line with tab labels can be used to quickly switch between these pages.
+	|tab-page|
 
 Syntax highlighting.					|:syntax|
 	Vim can highlight keywords, patterns and other things.  This is
-	defined by a number of ":syntax" commands, and can be made to
+	defined by a number of |:syntax| commands, and can be made to
 	highlight most languages and file types.  A number of files are
 	included for highlighting the most common languages, like C, C++,
 	Java, Pascal, Makefiles, shell scripts, etc.  The colors used for
 	highlighting can be defined for ordinary terminals, color terminals
-	and the GUI with the ":highlight" command.
-
-Folding							|folding|
+	and the GUI with the |:highlight| command.  A convenient way to do
+	this is using a |:colorscheme| command.
+	The highlighted text can be exported as HTML. |convert-to-HTML|
+	Other items that can be highlighted are matches with the search string
+	|'hlsearch'|, matching parens |matchparen| and the cursor line and
+	column |'cursorline'| |'cursorcolumn'|.
+
+Spell checking.						|spell|
+	When the 'spell' option is set Vim will highlight spelling mistakes.
+	About 40 languages are currently supported, selected with the
+	'spellang' option.  In source code only comments and strings are
+	checked for spelling.
+
+Folding.						|folding|
 	A range of lines can be shown as one "folded" line.  This allows
 	overviewing a file and moving blocks of text around quickly.
 	Folds can be created manually, from the syntax of the file, by indent,
 	etc.
 
-Plugins							|add-plugin|
+Diff mode.						|diff|
+	Vim can show two versions of a file with the differences highlighted.
+	Parts of the text that are equal are folded away.  Commands can be
+	used to move text from one version to the other.
+
+Plugins.						|add-plugin|
 	The functionality can be extended by dropping a plugin file in the
 	right directory.  That's an easy way to start using Vim scripts
 	written by others.  Plugins can be for all kind of files, or
 	specifically for a filetype.
 
 Repeat a series of commands.				|q|
-	"q{c}" starts recording typed characters into named register {c}
-	(append to the register if register name is uppercase).  A subsequent
-	"q" stops recording.  The register can then be executed with the
-	"@{c}" command.  This is very useful to repeat a complex action.
+	"q{c}" starts recording typed characters into named register {c}.
+	A subsequent "q" stops recording.  The register can then be executed
+	with the "@{c}" command.  This is very useful to repeat a complex
+	action.
 
 Flexible insert mode.					|ins-special-special|
 	The arrow keys can be used in insert mode to move around in the file.
 	This breaks the insert in two parts as far as undo and redo is
 	concerned.
 
-	CTRL-O can be used to execute a single command-mode command.  This is
-	almost the same as hitting <Esc>, typing the command and doing "a".
+	CTRL-O can be used to execute a single Normal mode command.  This is
+	almost the same as hitting <Esc>, typing the command and doing |a|.
 
 Visual mode.						|Visual-mode|
-	Visual can be used to first highlight a piece of text and then give a
-	command to do something with it.  This is an (easy to use) alternative
-	to first giving the operator and then moving to the end of the text
-	to be operated upon.  "v" and "V" are used to start Visual mode.  "v"
-	works on characters and 'V' on lines.  Move the cursor to extend the
-	Visual part.  It is shown highlighted on the screen.  By typing "o"
-	the other end of the Visual text can be moved.  The Visual text can
-	be affected by an operator:
+	Visual mode can be used to first highlight a piece of text and then
+	give a command to do something with it.  This is an (easy to use)
+	alternative to first giving the operator and then moving to the end of
+	the text to be operated upon.
+	|v| and |V| are used to start Visual mode.  |v| works on characters
+	and |V| on lines.  Move the cursor to extend the Visual area.  It is
+	shown highlighted on the screen.  By typing "o" the other end of the
+	Visual area can be moved.  The Visual area can be affected by an
+	operator:
 		d	delete
 		c	change
 		y	yank
 		> or <	insert or delete indent
 		!	filter through external program
 		=	filter through indent
-		:	start ":" command for the Visual lines.
+		:	start |:| command for the Visual lines.
 		gq	format text to 'textwidth' columns
 		J	join lines
 		~	swap case
@@ -224,15 +250,15 @@ Visual mode.						|Visual-mode|
 		U	make uppercase
 
 Block operators.					|visual-block|
-	With Visual a rectangular block of text can be selected.  Start Visual
-	with CTRL-V.  The block can be deleted ("d"), yanked ("y") or its case
-	can be changed ("~", "u" and "U").  A deleted or yanked block can be
-	put into the text with the "p" and "P" commands.
+	With Visual mode a rectangular block of text can be selected.  Start
+	Visual mode with CTRL-V.  The block can be deleted ("d"), yanked ("y")
+	or its case can be changed ("~", "u" and "U").  A deleted or yanked
+	block can be put into the text with the "p" and "P" commands.
 
-Online help system.					|:help|
+Help system.						|:help|
 	Help is displayed in a window.  The usual commands can be used to
 	move around, search for a string, etc.  Tags can be used to jump
-	around in the help files, just like hypertext links.  The ":help"
+	around in the help files, just like hypertext links.  The |:help|
 	command takes an argument to quickly jump to the info on a subject.
 	<F1> is the quick access to the help system.  The name of the help
 	index file can be set with the 'helpfile' option.
@@ -243,7 +269,6 @@ Command-line editing and history.			|cmdline-editing|
 	forward/backward one character.  The shifted right/left cursor keys
 	can be used to move forward/backward one word.  CTRL-B/CTRL-E can be
 	used to go to the begin/end of the command-line.
-
 							|cmdline-history|
 	The command-lines are remembered.  The up/down cursor keys can be used
 	to recall previous command-lines.  The 'history' option can be set to
@@ -271,9 +296,9 @@ Command-line completion.				|cmdline-completion|
 	all matches.  CTRL-L will insert the longest common part of the
 	matches.
 
-Insert-mode completion					|ins-completion|
-	In insert mode the CTRL-N and CTRL-P keys can be used to complete a
-	word that has previously been used.	|i_CTRL-N|
+Insert-mode completion.					|ins-completion|
+	In Insert mode the CTRL-N and CTRL-P keys can be used to complete a
+	word that appears elsewhere.	|i_CTRL-N|
 	With CTRL-X another mode is entered, through which completion can be
 	done for:
 	|i_CTRL-X_CTRL-F|	file names
@@ -283,51 +308,64 @@ Insert-mode completion					|ins-completion|
 	|i_CTRL-X_CTRL-L|	whole lines
 	|i_CTRL-X_CTRL-]|	words from the tags file
 	|i_CTRL-X_CTRL-D|	definitions or macros
+	|i_CTRL-X_CTRL-O|	Omni completion: clever completion
+				specifically for a file type
+	etc.
 
-Long line support					|'wrap'| |'linebreak'|
+Long line support.					|'wrap'| |'linebreak'|
 	If the 'wrap' option is off, long lines will not wrap and only part
 	of them will be shown.  When the cursor is moved to a part that is not
 	shown, the screen will scroll horizontally.  The minimum number of
-	columns to scroll can be set with the 'sidescroll' option.  The "zh"
-	and "zl" commands can be used to scroll sideways.
+	columns to scroll can be set with the 'sidescroll' option.  The |zh|
+	and |zl| commands can be used to scroll sideways.
 	Alternatively, long lines are broken in between words when the
 	'linebreak' option is set.  This allows editing a single-line
 	paragraph conveniently (e.g. when the text is later read into a DTP
-	program).  Move the cursor up/down with the "gk" and "gj" commands.
+	program).  Move the cursor up/down with the |gk| and |gj| commands.
 
 Text formatting.					|formatting|
 	The 'textwidth' option can be used to automatically limit the line
 	length.  This supplements the 'wrapmargin' option of Vi, which was not
-	very useful.  The "gq" operator can be used to format a piece of text
-	(for example, "gqap" formats the current paragraph).  Commands for
-	text alignment: ":center", ":left" and ":right".
+	very useful.  The |gq| operator can be used to format a piece of text
+	(for example, |gqap| formats the current paragraph).  Commands for
+	text alignment: |:center|, |:left| and |:right|.
 
-Extended search patterns				|pattern|
+Extended search patterns.				|pattern|
 	There are many extra items to match various text items.  Examples:
 	A "\n" can be used in a search pattern to match a line break.
 	"x\{2,4}" matches "x" 2 to 4 times.
 	"\s" matches a white space character.
 
+Directory, remote and archive browsing.			|netrw|
+	Vim can browse the file system.  Simply edit a directory.  Move around
+	in the list with the usual commands and press <Enter> to go to the
+	directory or file under the cursor.
+	This also works for remote files over ftp, http, ssh, etc.
+	Zip and tar archives can also be browsed. |tar| |zip|
+
 Edit-compile-edit speedup.				|quickfix|
-	The ":make" command can be used to run the compilation and jump to
-	the first error.  Alternatively Vim can be started with the "-q"
-	option from the compiler.  A file with compiler error messages is
-	interpreted.  Vim starts editing at the first error.
+	The |:make| command can be used to run the compilation and jump to the
+	first error.  A file with compiler error messages is interpreted.  Vim
+	jumps to the first error.
 
 	Each line in the error file is scanned for the name of a file, line
 	number and error message.  The 'errorformat' option can be set to a
 	list of scanf-like strings to handle output from many compilers.
 
-	The ":cn" command can be used to jump to the next error.
-	":cl" lists all the error messages.  Other commands are available
-	(almost the same as with Manx's Z editor on the Amiga).
+	The |:cn| command can be used to jump to the next error.
+	|:cl| lists all the error messages.  Other commands are available.
 	The 'makeef' option has the name of the file with error messages.
 	The 'makeprg' option contains the name of the program to be executed
-	with the ":make" command.
+	with the |:make| command.
 	The 'shellpipe' option contains the string to be used to put the
 	output of the compiler into the errorfile.
 
-Improved indenting for C programs			|'cindent'|
+Finding matches in files.				|:vimgrep|
+	Vim can search for a pattern in multiple files.  This uses the
+	advanced Vim regexp pattern, works on all systems and also works to
+	search in compressed files.
+
+Improved indenting for programs.			|'cindent'|
 	When the 'cindent' option is on the indent of each line is
 	automatically adjusted.  C syntax is mostly recognized.  The indent
 	for various styles can be set with 'cinoptions'.  The keys to trigger
@@ -336,68 +374,85 @@ Improved indenting for C programs			|'cindent'|
 	Comments can be automatically formatted.  The 'comments' option can be
 	set to the characters that start and end a comment.  This works best
 	for C code, but also works for e-mail (">" at start of the line) and
-	other types of text.  The "=" operator can be used to re-indent
+	other types of text.  The |=| operator can be used to re-indent
 	lines.
 
-Searching for words in include files			|include-search|
-	The "[i" command can be used to search for a match of the word under
+	For many other languages an indent plugin is present to support
+	automatic indenting. |30.3|
+
+Searching for words in included files.			|include-search|
+	The |[i| command can be used to search for a match of the word under
 	the cursor in the current and included files.  The 'include' option
 	can be set the a pattern that describes a command to include a file
 	(the default is for C programs).
-	The "[I" command lists all matches, the "[ CTRL-I" command jumps to
+	The |[I| command lists all matches, the |[_CTRL-I| command jumps to
 	a match.
-	The "[d", "[D" and "[ CTRL-D" commands do the same, but only for
+	The |[d|, |[D| and |[_CTRL-D| commands do the same, but only for
 	lines where the pattern given with the 'define' option matches.
 
-Automatic commands					|autocommand|
+Automatic commands.					|autocommand|
 	Commands can be automatically executed when reading a file, writing a
 	file, jumping to another buffer, etc., depending on the file name.
 	This is useful to set options and mappings for C programs,
 	documentation, plain text, e-mail, etc.  This also makes it possible
 	to edit compressed files.
 
-Scripts and Expressions					|expression|
-	Commands have been added to form up a simple but powerful script
-	language.
+Scripts and Expressions.				|expression|
+	Commands have been added to form up a powerful script language.
 	|:if|		Conditional execution, which can be used for example
 			to set options depending on the value of $TERM.
 	|:while|	Repeat a number of commands.
+	|:for|		Loop over a list.
 	|:echo|		Print the result of an expression.
 	|:let|		Assign a value to an internal variable, option, etc.
+			Variable types are Number, String, List and Dictionary.
 	|:execute|	Execute a command formed by an expression.
-	etc.
+	|:try|		Catch exceptions.
+	etc., etc.  See |eval|.
+	Debugging and profiling are supported. |debug-scripts| |profile|
+	If this is not enough, an interface is provided to |Python|, |Ruby|,
+	|Tcl|, |Perl| and |MzScheme|.
 
-Viminfo							|viminfo-file|
+Viminfo.						|viminfo-file|
 	The command-line history, marks and registers can be stored in a file
 	that is read on startup.  This can be used to repeat a search command
 	or command-line command after exiting and restarting Vim.  It is also
-	possible to jump right back to where the last edit stopped with "'0".
+	possible to jump right back to where the last edit stopped with |'0|.
 	The 'viminfo' option can be set to select which items to store in the
 	.viminfo file.  This is off by default.
 
-Mouse support						|mouse-using|
+Printing.						|printing|
+	The |:hardcopy| command sends text to the printer.  This can include
+	syntax highlighting.
+
+Mouse support.						|mouse-using|
 	The mouse is supported in the GUI version, in an xterm for Unix, for
 	Linux with gpm, for MS-DOS, and Win32.  It can be used to position the
 	cursor, select the visual area, paste a register, etc.
 
-Usage of key names					|<>| |key-notation|
+Usage of key names.					|<>| |key-notation|
 	Special keys now all have a name like <Up>, <End>, etc.
 	This name can be used in mappings, to make it easy to edit them.
 
-Editing binary files					|edit-binary|
+Editing binary files.					|edit-binary|
 	Vim can edit binary files.  You can change a few characters in an
 	executable file, without corrupting it.  Vim doesn't remove NUL
 	characters (they are represented as <NL> internally).
 	|-b|		command-line argument to start editing a binary file
-	|'binary'|	Option set by "-b".  Prevents adding an <EOL> for the
+	|'binary'|	Option set by |-b|.  Prevents adding an <EOL> for the
 			last line in the file.
 
-Multi-language support					|multi-lang|
+Multi-language support.					|multi-lang|
 	Files in double-byte or multi-byte encodings can be edited.  There is
 	UTF-8 support to be able to edit various languages at the same time,
 	without switching fonts. |UTF-8|
 	Messages and menus are available in different languages.
 
+Move cursor beyond lines.
+	When the 'virtualedit' option is set the cursor can move all over the
+	screen, also where there is no text.  This is useful to edit tables
+	and figures easily.
+
 ==============================================================================
 5. Other vim features					*other-features*
 
@@ -843,6 +898,8 @@ Only Vim is able to accept options in between and after the file names.
 
 -o[N]		Vim: Open [N] windows, or one for each file.
 
+-p[N]		Vim: Open [N] tab pages, or one for each file.
+
 -P {parent-title} Win32 Vim: open Vim inside a parent application window
 
 -q {name}	Vim: Use {name} for quickfix error file.
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 3aa1ee79ce37d030d983a511daae79c478432f95..e84573a3120ecbe314eefa64859eb260d5b57a09 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 11
+" Last Change:	2006 Apr 12
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -620,7 +620,7 @@ au BufNewFile,BufRead *.ged			setf gedcom
 au BufNewFile,BufRead gkrellmrc,gkrellmrc_?	setf gkrellmrc
 
 " GP scripts (2.0 and onward)
-au BufNewFile,BufRead *.gp			setf gp
+au BufNewFile,BufRead *.gp,.gprc		setf gp
 
 " GPG
 au BufNewFile,BufRead */.gnupg/options		setf gpg
diff --git a/runtime/ftplugin/python.vim b/runtime/ftplugin/python.vim
index 8e6a03f04ea49589c17e6942d3d0936195cbb66b..e7c6d6b01e1f39c66d98327331739a294baa7356 100644
--- a/runtime/ftplugin/python.vim
+++ b/runtime/ftplugin/python.vim
@@ -14,7 +14,7 @@ setlocal suffixesadd=.py
 setlocal comments-=:%
 setlocal commentstring=#%s
 
-setlocal omnifunc=pycomplete#Complete
+setlocal omnifunc=pythoncomplete#Complete
 
 set wildignore+=*.pyc
 
diff --git a/runtime/lang/menu_it_it.latin1.vim b/runtime/lang/menu_it_it.latin1.vim
index 184951cdc0d5a27a2799059806493e0827e676a1..aac8fb64085fa43bb27885a28387c47612df2879 100644
--- a/runtime/lang/menu_it_it.latin1.vim
+++ b/runtime/lang/menu_it_it.latin1.vim
@@ -65,7 +65,8 @@ menut &Select\ All<Tab>ggVG		Seleziona\ &tutto<Tab>ggVG
 menut &Find\.\.\.			&Cerca\.\.\.
 menut Find\ and\ Rep&lace\.\.\.	&Sostituisci\.\.\.
 menut Settings\ &Window		&Finestra\ Impostazioni
-menut &Global\ Settings		Impostazioni\ &globali
+menut Startup\ &Settings	Impostazioni\ di\ &Avvio
+menut &Global\ Settings		Impostazioni\ &Globali
 menut Question			Domanda
 
 " Edit / Modifica Impostazioni Globali
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index fd4ba897464f7c7f31e7b55b57ef073b2c6043cb..6225c59b8a401f79f394f70b6dd26a2c462efcd6 100644
Binary files a/runtime/spell/en.ascii.spl and b/runtime/spell/en.ascii.spl differ
diff --git a/runtime/spell/en.ascii.sug b/runtime/spell/en.ascii.sug
index d68c5a5de6e98777aa7a46b55e6ebf1050aeb94c..26dc82373893df428e54c04453d726a52244f414 100644
Binary files a/runtime/spell/en.ascii.sug and b/runtime/spell/en.ascii.sug differ
diff --git a/runtime/spell/en.latin1.spl b/runtime/spell/en.latin1.spl
index 33be1a06b0309225ff8c48f503728508cd1af100..2e5d1e9d87d22f83447b9786ef98363e330467f6 100644
Binary files a/runtime/spell/en.latin1.spl and b/runtime/spell/en.latin1.spl differ
diff --git a/runtime/spell/en.latin1.sug b/runtime/spell/en.latin1.sug
index 913ebee26b42712e1997ba153b3d8f5853b244ec..31924e93b6edd6eab56f43ad9945b6529805b21d 100644
Binary files a/runtime/spell/en.latin1.sug and b/runtime/spell/en.latin1.sug differ
diff --git a/runtime/spell/en.utf-8.spl b/runtime/spell/en.utf-8.spl
index af8afc5145fed2ac313a5adfeb55f48313fc271a..ab4e9a970e45760caddf0a4f92d9a6f132428c7a 100644
Binary files a/runtime/spell/en.utf-8.spl and b/runtime/spell/en.utf-8.spl differ
diff --git a/runtime/spell/en.utf-8.sug b/runtime/spell/en.utf-8.sug
index 8ae442ac4a470e04bf187034a8230c294542af2c..29a31777c3d1e5c21f213b08b68c38fd8accd8c8 100644
Binary files a/runtime/spell/en.utf-8.sug and b/runtime/spell/en.utf-8.sug differ
diff --git a/runtime/spell/hu/hu_HU.diff b/runtime/spell/hu/hu_HU.diff
index 637c54348c8654c83dca5088e53442bd0bbfe77c..cccd0abd58a1ef2ce257c83acea1dcec05cdd898 100644
--- a/runtime/spell/hu/hu_HU.diff
+++ b/runtime/spell/hu/hu_HU.diff
@@ -1,135 +1,87 @@
-*** hu_HU.orig.aff	Sun Mar 26 15:05:13 2006
---- hu_HU.aff	Thu Apr  6 19:48:01 2006
+*** hu_HU.orig.aff	Wed Apr 12 12:33:23 2006
+--- hu_HU.aff	Wed Apr 12 12:43:39 2006
 ***************
-*** 57,59 ****
+*** 58,60 ****
   NAME Magyar Ispell helyesírási szótár
 ! LANG hu_HU
   HOME http://magyarispell.sourceforge.net
---- 57,59 ----
+--- 58,60 ----
   NAME Magyar Ispell helyesírási szótár
 ! #LANG hu_HU
   HOME http://magyarispell.sourceforge.net
 ***************
-*** 62,63 ****
---- 62,68 ----
-  TRY íóúÍÓÚtaeslzánorhgkiédmyõpvöbucfjüûxwqTAESLZÁNORHGKIÉDMYÕPVÖBUCFJÜÛXWQ-.
-+ 
-+ # There are soooo many affixes.  Postpone the prefixes to keep the time needed
-+ # for generating the .spl within reasonable limits.
-+ PFXPOSTPONE
-+ 
-  COMPOUNDMIN 1
-***************
-*** 66,69 ****
-  COMPOUNDPERMITFLAG @
+*** 64,77 ****
+  COMPOUNDMIN 2
+! COMPOUNDFLAG Y
+! COMPOUNDWORD 2 y
 ! COMPOUNDSYLLABLE 6 aáeéiíoóöõuúüû
 ! SYLLABLENUM klmc
-  
---- 71,81 ----
-  COMPOUNDPERMITFLAG @
-! #
-! # Strange that every vowel is counted as a syllable, that's how the hunspell
-! # code works.
+! COMPOUNDFIRST v
+! COMPOUNDLAST x
+! FORBIDDENWORD w
+! ONLYROOT u
+! ACCENT áéíóöõúüû aeiooouuu
+! CHECKNUM
+! WORDCHARS -.§%°0123456789
+! HU_KOTOHANGZO Z
+  
+--- 64,115 ----
+  COMPOUNDMIN 2
+! #COMPOUNDWORD 2 y
+! COMPOUNDWORDMAX 2
+! COMPOUNDROOT y
+! 
 ! #COMPOUNDSYLLABLE 6 aáeéiíoóöõuúüû
 ! COMPOUNDSYLMAX 6
 ! SYLLABLE a/á/e/é/i/í/o/ó/ö/õ/u/ú/ü/û
+! # Strange that every vowel is counted as a syllable, that's how the hunspell
+! # code works.
 ! 
 ! # the effect of SYLLABLENUM is not documented
 ! #SYLLABLENUM klmc
-  
-***************
-*** 74,88 ****
-  
-! # obsoloted
-! COMPOUNDFIRST v
-! COMPOUNDLAST x
-! ONLYROOT u
-  #COMPOUNDWORD 2 y
-! HU_KOTOHANGZO ?
-  
-  # new (> Hunspell-1.0-RC2)
-! COMPOUNDBEGIN v
-! COMPOUNDEND x
-! PSEUDOROOT u
-  # 2. parameter only for back compatibility:
-! COMPOUNDWORDMAX 2 y
-  COMPOUNDROOT y
---- 86,110 ----
-  
-! # obsolete
+! 
+! #COMPOUNDFLAG Y
 ! #COMPOUNDFIRST v
 ! #COMPOUNDLAST x
-! #ONLYROOT u
+! COMPOUNDRULE Y+
+! COMPOUNDRULE vY*x
+! COMPOUNDRULE Y+x
+! COMPOUNDRULE vY+
 ! 
-  #COMPOUNDWORD 2 y
-! 
-! # Undocumented and ? is already used for KEEPCASE
-! #HU_KOTOHANGZO ?
-  
-  # new (> Hunspell-1.0-RC2)
-! #COMPOUNDBEGIN v
-! #COMPOUNDEND x
-! COMPOUNDRULE vx
-! 
-! # PSEUDOROOT was renamed to NEEDAFFIX
-! #PSEUDOROOT u
-! NEEDAFFIX u
-! 
-  # 2. parameter only for back compatibility:
-! # What is the extra "y" for?
-! #COMPOUNDWORDMAX 2 y
-! COMPOUNDWORDMAX 2
-  COMPOUNDROOT y
-***************
-*** 93,94 ****
---- 115,117 ----
-  CHECKCOMPOUNDCASE
-+ 
-  CHECKCOMPOUNDPATTERN 7
-***************
-*** 102,111 ****
-  
-! FORBIDDENWORD w
-! WORDCHARS -.§%°0123456789–
-  
-  
-! NOT_GENERATE &
-! GENERATE (
-  
-! LEMMA_PRESENT )
-  
---- 125,151 ----
-  
 ! #FORBIDDENWORD w
 ! BAD w
 ! 
-! #WORDCHARS -.§%°0123456789–
-  
-+ # List the word characters for ISO-8859-2.
-+ FOL ±¢³µ¶¨¹º»¼¾¿±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ-§%°
-+ LOW ±¢³µ¶¨¹º»¼¾¿±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ-§%°
-+ UPP ¡¢£¥¦¨©ª«¬®¯±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ-§%°
-+ MIDWORD .
-  
-! # These are not documented and not in the source code either
-! #NOT_GENERATE &
-! #GENERATE (
-  
-! # Only for morphological analysis
-! #LEMMA_PRESENT )
+! #ONLYROOT u
+! NEEDAFFIX u
 ! 
-! # This works better than REP items
+! #ACCENT áéíóöõúüû aeiooouuu
 ! MAP 5
 ! MAP aáä
 ! MAP eé
 ! MAP ií
 ! MAP oóöõ
 ! MAP uúüû
+! 
+! #CHECKNUM
+! # Vim always handles numbers in the same way.
+! 
+! #WORDCHARS -.§%°0123456789
+! FOL ±¢³µ¶¨¹º»¼¾¿±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ-§%°
+! LOW ±¢³µ¶¨¹º»¼¾¿±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ-§%°
+! UPP ¡¢£¥¦¨©ª«¬®¯±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ-§%°
+! MIDWORD .
+! 
+! # Undocumented
+! #HU_KOTOHANGZO Z
+! 
+! # There are soooo many affixes.  Postpone the prefixes to keep the time needed
+! # for generating the .spl within reasonable limits.
+! PFXPOSTPONE
   
 ***************
-*** 115,130 ****
+*** 81,96 ****
   
-! REP 92
+! REP 89
 ! REP í i
 ! REP i í
 ! REP ó o
@@ -144,174 +96,88 @@
   REP ly j
 - REP a ä # Handel->Händel
   REP S © # Skoda->©koda
---- 155,159 ----
+--- 119,123 ----
   
-! REP 81
+! REP 78
   REP j ly
   REP ly j
   REP S © # Skoda->©koda
 ***************
-*** 214,251 ****
-  
-! CHR HTML 35
-! CHR HTML &curren; ¤
-! CHR HTML &deg; °
-! CHR HTML &acute; ´
-! CHR HTML &cedil; ¸
-! CHR HTML &Aacute; Á
-! CHR HTML &Acirc; Â
-! CHR HTML &Auml; Ä
-! CHR HTML &Ccedil; Ç
-! CHR HTML &Eacute; É
-! CHR HTML &Euml; Ë
-! CHR HTML &Iacute; Í
-! CHR HTML &Icirc; Î
-! CHR HTML &Oacute; Ó
-! CHR HTML &Ocirc; Ô
-! CHR HTML &Ouml; Ö
-! CHR HTML &times; ×
-! CHR HTML &Uacute; Ú
-! CHR HTML &Uuml; Ü
-! CHR HTML &Yacute; Ý
-! CHR HTML &szlig; ß
-! CHR HTML &aacute; á
-! CHR HTML &acirc; â
-! CHR HTML &auml; ä
-! CHR HTML &ccedil; ç
-! CHR HTML &eacute; é
-! CHR HTML &euml; ë
-! CHR HTML &iacute; í
-! CHR HTML &icirc; î
-! CHR HTML &oacute; ó
-! CHR HTML &ocirc; ô
-! CHR HTML &ouml; ö
-! CHR HTML &divide; ÷
-! CHR HTML &uacute; ú
-! CHR HTML &uuml; ü
-! CHR HTML &yacute; ý
+*** 173,241 ****
   
---- 243,280 ----
-  
-! #CHR HTML 35
-! #CHR HTML &curren; ¤
-! #CHR HTML &deg; °
-! #CHR HTML &acute; ´
-! #CHR HTML &cedil; ¸
-! #CHR HTML &Aacute; Á
-! #CHR HTML &Acirc; Â
-! #CHR HTML &Auml; Ä
-! #CHR HTML &Ccedil; Ç
-! #CHR HTML &Eacute; É
-! #CHR HTML &Euml; Ë
-! #CHR HTML &Iacute; Í
-! #CHR HTML &Icirc; Î
-! #CHR HTML &Oacute; Ó
-! #CHR HTML &Ocirc; Ô
-! #CHR HTML &Ouml; Ö
-! #CHR HTML &times; ×
-! #CHR HTML &Uacute; Ú
-! #CHR HTML &Uuml; Ü
-! #CHR HTML &Yacute; Ý
-! #CHR HTML &szlig; ß
-! #CHR HTML &aacute; á
-! #CHR HTML &acirc; â
-! #CHR HTML &auml; ä
-! #CHR HTML &ccedil; ç
-! #CHR HTML &eacute; é
-! #CHR HTML &euml; ë
-! #CHR HTML &iacute; í
-! #CHR HTML &icirc; î
-! #CHR HTML &oacute; ó
-! #CHR HTML &ocirc; ô
-! #CHR HTML &ouml; ö
-! #CHR HTML &divide; ÷
-! #CHR HTML &uacute; ú
-! #CHR HTML &uuml; ü
-! #CHR HTML &yacute; ý
-  
-***************
-*** 255,277 ****
-  
-! CHR 123 20
-! CHR 123 a1 á
-! CHR 123 e1 é
-! CHR 123 e2 ë
-! CHR 123 i1 í
-! CHR 123 o1 ó
-! CHR 123 o2 ö
-! CHR 123 o3 õ
-! CHR 123 u1 ú
-! CHR 123 u2 ü
-! CHR 123 u3 û
-! CHR 123 A1 Á
-! CHR 123 E1 É
-! CHR 123 E2 Ë
-! CHR 123 I1 Í
-! CHR 123 O1 Ó
-! CHR 123 O2 Ö
-! CHR 123 O3 Õ
-! CHR 123 U1 Ú
-! CHR 123 U2 Ü
-! CHR 123 U3 Û
-  
---- 284,306 ----
-  
-! #CHR 123 20
-! #CHR 123 a1 á
-! #CHR 123 e1 é
-! #CHR 123 e2 ë
-! #CHR 123 i1 í
-! #CHR 123 o1 ó
-! #CHR 123 o2 ö
-! #CHR 123 o3 õ
-! #CHR 123 u1 ú
-! #CHR 123 u2 ü
-! #CHR 123 u3 û
-! #CHR 123 A1 Á
-! #CHR 123 E1 É
-! #CHR 123 E2 Ë
-! #CHR 123 I1 Í
-! #CHR 123 O1 Ó
-! #CHR 123 O2 Ö
-! #CHR 123 O3 Õ
-! #CHR 123 U1 Ú
-! #CHR 123 U2 Ü
-! #CHR 123 U3 Û
-  
-***************
-*** 22054,22055 ****
---- 22083,22085 ----
-  PFX D 0 leg [^AÁBCDEÉFGHIÍJKLMNOÓÖÕPQRSTUÚÜÛVWZ]
-+ 
-  PFX " Y 37
-*** hu_HU.orig.dic	Sun Mar 26 15:05:13 2006
---- hu_HU.dic	Sun Mar 26 20:12:13 2006
-***************
-*** 94597,94600 ****
-  0
-- ...
-- .
-  -öt
---- 94597,94598 ----
-***************
-*** 94616,94622 ****
-  -/ABCUVWKLMQR
-- ,
-- +
-- )
-- (
-- '
-  &aring;ngström/W̯jØMÝÔíè³ÅåTtYc¸½l
---- 94614,94615 ----
+- # character conversion table
+- # (HTML latin-1 entities -> latin-2)
+- # not implemented yet
+- 
+- CHR HTML 35
+- CHR HTML &curren; ¤
+- CHR HTML &deg; °
+- CHR HTML &acute; ´
+- CHR HTML &cedil; ¸
+- CHR HTML &Aacute; Á
+- CHR HTML &Acirc; Â
+- CHR HTML &Auml; Ä
+- CHR HTML &Ccedil; Ç
+- CHR HTML &Eacute; É
+- CHR HTML &Euml; Ë
+- CHR HTML &Iacute; Í
+- CHR HTML &Icirc; Î
+- CHR HTML &Oacute; Ó
+- CHR HTML &Ocirc; Ô
+- CHR HTML &Ouml; Ö
+- CHR HTML &times; ×
+- CHR HTML &Uacute; Ú
+- CHR HTML &Uuml; Ü
+- CHR HTML &Yacute; Ý
+- CHR HTML &szlig; ß
+- CHR HTML &aacute; á
+- CHR HTML &acirc; â
+- CHR HTML &auml; ä
+- CHR HTML &ccedil; ç
+- CHR HTML &eacute; é
+- CHR HTML &euml; ë
+- CHR HTML &iacute; í
+- CHR HTML &icirc; î
+- CHR HTML &oacute; ó
+- CHR HTML &ocirc; ô
+- CHR HTML &ouml; ö
+- CHR HTML &divide; ÷
+- CHR HTML &uacute; ú
+- CHR HTML &uuml; ü
+- CHR HTML &yacute; ý
+- 
+- # character conversion table
+- # (Prószéky-code -> latin-2)
+- # not implemented yet
+- 
+- CHR 123 20
+- CHR 123 a1 á
+- CHR 123 e1 é
+- CHR 123 e2 ë
+- CHR 123 i1 í
+- CHR 123 o1 ó
+- CHR 123 o2 ö
+- CHR 123 o3 õ
+- CHR 123 u1 ú
+- CHR 123 u2 ü
+- CHR 123 u3 û
+- CHR 123 A1 Á
+- CHR 123 E1 É
+- CHR 123 E2 Ë
+- CHR 123 I1 Í
+- CHR 123 O1 Ó
+- CHR 123 O2 Ö
+- CHR 123 O3 Õ
+- CHR 123 U1 Ú
+- CHR 123 U2 Ü
+- CHR 123 U3 Û
+- 
+  SFX z Y 6
+--- 200,201 ----
 ***************
-*** 94634,94642 ****
-  %-/KUÒÖmQSsi)
-- %
-- $
-- "
-- !!!
-- !!
-- !
-- /
+*** 17678,17681 ****
+  PFX D   0    leg          .
+- 
+-    1
 - 
---- 94627 ----
+--- 17638 ----
diff --git a/runtime/spell/hu/main.aap b/runtime/spell/hu/main.aap
index 0997b68d7ffd97ddf4fd10225bfd61becc32e6b0..3890b1eafeebcce75e892e9b5dcee9dc02de815f 100644
--- a/runtime/spell/hu/main.aap
+++ b/runtime/spell/hu/main.aap
@@ -21,31 +21,23 @@ $SPELLDIR/hu.utf-8.spl : $FILES
 $SPELLDIR/hu.cp1250.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=cp1250" -c "mkspell! $SPELLDIR/hu hu_HU" -c q
 
-# There is no readme in the .zip file, use the header of the .aff file.
-../README_hu.txt: hu_HU.aff
-        :sys $VIM -u NONE -e hu_HU.aff -c "1,/# ---/w! $target" -c q
+../README_hu.txt: README_hu_HU.txt
+        :copy $source $target
 
 #
-# Fetch the zip file from SourceForge.  Version specific name...
+# Fetching the files from OpenOffice.org.
 #
-OODIR = http://hunspell.sourceforge.net
-zipname = hu_HU2.zip
-:attr {fetch = $OODIR/%file%} $zipname
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} hu_HU.zip
 
 # The files don't depend on the .zip file so that we can delete it.
 # Only download the zip file if the targets don't exist.
 # This is a bit tricky, since the file name includes the date.
 hu_HU.aff hu_HU.dic: {buildcheck=}
         :assertpkg unzip patch
-        :fetch $zipname
-        :sys $UNZIP $zipname
-        :delete $zipname
-
-        # Unfortunately the version number is in the file name...
-        :move hu_HU2.dic hu_HU.dic
-        :move hu_HU2.aff hu_HU.aff
-        :delete hu_HU2.history
-
+        :fetch hu_HU.zip
+        :sys $UNZIP hu_HU.zip
+        :delete hu_HU.zip
         @if not os.path.exists('hu_HU.orig.aff'):
             :copy hu_HU.aff hu_HU.orig.aff
         @if not os.path.exists('hu_HU.orig.dic'):
@@ -63,5 +55,27 @@ diff:
         :sys {force} diff -a -C 1 hu_HU.orig.dic hu_HU.dic >>hu_HU.diff
 
 
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch hu_HU.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../hu_HU.zip
+            :sys {force} diff ../hu_HU.orig.aff hu_HU.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy hu_HU.aff ../hu_HU.new.aff
+            :sys {force} diff ../hu_HU.orig.dic hu_HU.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy hu_HU.dic ../hu_HU.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete hu_HU.zip
+
 
 # vim: set sts=4 sw=4 :
diff --git a/runtime/spell/mi/main.aap b/runtime/spell/mi/main.aap
index a1a6713bc142f83751d02f9dcc81f6b567f0343c..7cd841953aa0b271cd88c342bd9fd2b7018ea5d3 100644
--- a/runtime/spell/mi/main.aap
+++ b/runtime/spell/mi/main.aap
@@ -9,9 +9,9 @@
 SPELLDIR = ..
 FILES    = mi_NZ.aff mi_NZ.dic
 
-all: $SPELLDIR/mi.latin1.spl $SPELLDIR/mi.utf-8.spl ../README_mi.txt
+all: $SPELLDIR/mi.iso-8859-4.spl $SPELLDIR/mi.utf-8.spl ../README_mi.txt
 
-$SPELLDIR/mi.latin1.spl : $FILES
+$SPELLDIR/mi.iso-8859-4.spl : $FILES
         :sys $VIM -u NONE -e -c "set enc=iso-8859-4"
                 -c "mkspell! $SPELLDIR/mi mi_NZ" -c q
 
diff --git a/runtime/spell/nl/nl_NL.diff b/runtime/spell/nl/nl_NL.diff
index 5212a1d56909d03ef4197caa86140d8c0d089fb5..1c59182373b9c3fa7b6b6705e83ff5981751f230 100644
--- a/runtime/spell/nl/nl_NL.diff
+++ b/runtime/spell/nl/nl_NL.diff
@@ -153,7 +153,7 @@
 + REP zoz z.o.z.
 + REP hopenlijk hopelijk
 *** nl_NL.orig.dic	Sun Jul  3 18:24:07 2005
---- nl_NL.dic	Fri Mar 10 09:58:01 2006
+--- nl_NL.dic	Wed Apr 12 15:18:00 2006
 ***************
 *** 1,3 ****
   119937
@@ -609,7 +609,7 @@
   zegenbede/N
 ***************
 *** 119938 ****
---- 119990,173195 ----
+--- 119990,173196 ----
   überhaupt
 + Christiaan/X
 + Fred/X
@@ -803,6 +803,7 @@
 + Jos
 + Laurens
 + Leon
++ Linda
 + Luc
 + Luuk
 + Marion
diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim
index e24dbe3a4aaf92daf027bce8aa03a4a97a069892..5339ea6f6934e01a6529f943e6ea55da75ca5a09 100644
--- a/runtime/syntax/c.vim
+++ b/runtime/syntax/c.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 05
+" Last Change:	2006 Apr 12
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -30,7 +30,11 @@ if exists("c_no_cformat")
   " cCppString: same as cString, but ends at end of line
   syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,@Spell
 else
-  syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+  if !exists("c_no_c99") " ISO C99
+    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+  else
+    syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+  endif
   syn match	cFormat		display "%%" contained
   syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell
   " cCppString: same as cString, but ends at end of line
diff --git a/runtime/syntax/cl.vim b/runtime/syntax/cl.vim
index 30308e12a72669aecfdca98a59ffbfac7eb19892..750cfdea26405ddebd5ddd1518f4c4f1936a6b15 100644
--- a/runtime/syntax/cl.vim
+++ b/runtime/syntax/cl.vim
@@ -2,7 +2,7 @@
 " Language:	cl ("Clever Language" by Multibase, http://www.mbase.com.au)
 " Filename extensions: *.ent, *.eni
 " Maintainer:	Philip Uren <philuSPAX@ieee.org> - Remove SPAX spam block
-" Last update:	Tue Apr 11 10:19:01 EST 2006
+" Last update:	Wed Apr 12 08:47:18 EST 2006
 " $Id$
 
 " For version 5.x: Clear all syntax items
@@ -24,50 +24,50 @@ syn case ignore
 syn sync lines=300
 
 "If/else/elsif/endif and while/wend mismatch errors
-syn match   clifError		"\<wend\>"
-syn match   clifError		"\<elsif\>"
-syn match   clifError		"\<else\>"
-syn match   clifError		"\<endif\>"
+syn match	clifError		"\<wend\>"
+syn match	clifError		"\<elsif\>"
+syn match	clifError		"\<else\>"
+syn match	clifError		"\<endif\>"
 
-syn match   clSpaceError	"\s\+$"
+syn match	clSpaceError		"\s\+$"
 
 " If and while regions
-syn region clLoop	transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure
-syn region clIf		transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>"   contains=ALLBUT,clBreak,clProcedure
+syn region	clLoop		transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure
+syn region	clIf		transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>"   contains=ALLBUT,clBreak,clProcedure
 
 " Make those TODO notes and debugging stand out!
-syn keyword	clTodo			contained	TODO BUG DEBUG FIX
-syn match	clNeedsWork		contained	"NEED[S]*\s\s*WORK"
-syn keyword clDebug			contained	debug
+syn keyword	clTodo		contained	TODO BUG DEBUG FIX
+syn match	clNeedsWork	contained	"NEED[S]*\s\s*WORK"
+syn keyword	clDebug		contained	debug
 
-syn match	clComment		"#.*$"		contains=clTodo,clNeedsWork
-syn region	clProcedure		oneline		start="^\s*[{}]" end="$"
-syn match	clInclude					"^\s*include\s.*"
+syn match	clComment	"#.*$"		contains=clTodo,clNeedsWork
+syn region	clProcedure	oneline		start="^\s*[{}]" end="$"
+syn match	clInclude	"^\s*include\s.*"
 
 " We don't put "debug" in the clSetOptions;
 " we contain it in clSet so we can make it stand out.
-syn keyword clSetOptions	transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim
-syn match	clSet			"^\s*set\s.*" contains=clSetOptions,clDebug
+syn keyword	clSetOptions	transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim
+syn match	clSet		"^\s*set\s.*" contains=clSetOptions,clDebug
 
-syn match clPreProc			"^\s*#P.*"
+syn match	clPreProc	"^\s*#P.*"
 
-syn keyword clConditional	else elsif
-syn keyword clWhile			continue endloop
+syn keyword	clConditional	else elsif
+syn keyword	clWhile		continue endloop
 " 'break' needs to be a region so we can sync on it above.
-syn region clBreak			oneline start="^\s*break" end="$"
+syn region	clBreak		oneline start="^\s*break" end="$"
 
-syn match clOperator		"[!;|)(:.><+*=-]"
+syn match	clOperator	"[!;|)(:.><+*=-]"
 
-syn match clNumber			"\<\d\+\(u\=l\=\|lu\|f\)\>"
+syn match	clNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
 
-syn region clString	matchgroup=clQuote	start=+"+ end=+"+	skip=+\\"+
-syn region clString matchgroup=clQuote	start=+'+ end=+'+	skip=+\\'+
+syn region	clString	matchgroup=clQuote	start=+"+ end=+"+	skip=+\\"+
+syn region	clString	matchgroup=clQuote	start=+'+ end=+'+	skip=+\\'+
 
-syn keyword clReserved		ERROR EXIT INTERRUPT LOCKED LREPLY MODE MCOL MLINE MREPLY NULL REPLY V1 V2 V3 V4 V5 V6 V7 V8 V9 ZERO BYPASS GOING_BACK AAUTO ABORT ABORT ALIGN BIGE CONVERT FNUM GOBACK HANGUP JUSTIFY NEXIT OUTPUT RAUTO RAWDISPLAY RAWPRINT REPEAT SKIP TAB TRIM LCOUNT PCOUNT PLINES SLINES SCOLS MATCH LMATCH
+syn keyword	clReserved	ERROR EXIT INTERRUPT LOCKED LREPLY MODE MCOL MLINE MREPLY NULL REPLY V1 V2 V3 V4 V5 V6 V7 V8 V9 ZERO BYPASS GOING_BACK AAUTO ABORT ABORT ALIGN BIGE CONVERT FNUM GOBACK HANGUP JUSTIFY NEXIT OUTPUT RAUTO RAWDISPLAY RAWPRINT REPEAT SKIP TAB TRIM LCOUNT PCOUNT PLINES SLINES SCOLS MATCH LMATCH
 
-syn keyword clFunction		asc asize chr name random slen srandom day getarg getcgi getenv lcase scat sconv sdel skey smult srep substr sword trim ucase match
+syn keyword	clFunction	asc asize chr name random slen srandom day getarg getcgi getenv lcase scat sconv sdel skey smult srep substr sword trim ucase match
 
-syn keyword clStatement		clear clear_eol clear_eos close copy create unique with where empty define define ldefine delay_form delete escape exit_block exit_do exit_process field fork format get getfile getnext getprev goto head join maintain message no_join on_eop on_key on_exit on_delete openin openout openapp pause popenin popenout popenio print put range read redisplay refresh restart_block screen select sleep text unlock write and not or do
+syn keyword	clStatement	clear clear_eol clear_eos close copy create unique with where empty define define ldefine delay_form delete escape exit_block exit_do exit_process field fork format get getfile getnext getprev goto head join maintain message no_join on_eop on_key on_exit on_delete openin openout openapp pause popenin popenout popenio print put range read redisplay refresh restart_block screen select sleep text unlock write and not or do
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -80,31 +80,31 @@ if	version >= 508 || !exists("did_cl_syntax_inits")
 		command -nargs=+ HiLink hi def link <args>
 	endif
 
-	HiLink clifError			Error
-	HiLink clSpaceError			Error
-	HiLink clWhile				Repeat
-	HiLink clConditional		Conditional
-	HiLink clDebug				Debug
-	HiLink clNeedsWork			Todo
-	HiLink clTodo				Todo
-	HiLink clComment			Comment
-	HiLink clProcedure			Procedure
-	HiLink clBreak				Procedure
-	HiLink clInclude			Include
-	HiLink clSetOption			Statement
-	HiLink clSet				Identifier
-	HiLink clPreProc			PreProc
-	HiLink clOperator			Operator
-	HiLink clNumber				Number
-	HiLink clString				String
-	HiLink clQuote				Delimiter
-	HiLink clReserved			Identifier
-	HiLink clFunction			Function
-	HiLink clStatement			Statement
+	HiLink clifError	Error
+	HiLink clSpaceError	Error
+	HiLink clWhile		Repeat
+	HiLink clConditional	Conditional
+	HiLink clDebug		Debug
+	HiLink clNeedsWork	Todo
+	HiLink clTodo		Todo
+	HiLink clComment	Comment
+	HiLink clProcedure	Procedure
+	HiLink clBreak		Procedure
+	HiLink clInclude	Include
+	HiLink clSetOption	Statement
+	HiLink clSet		Identifier
+	HiLink clPreProc	PreProc
+	HiLink clOperator	Operator
+	HiLink clNumber		Number
+	HiLink clString		String
+	HiLink clQuote		Delimiter
+	HiLink clReserved	Identifier
+	HiLink clFunction	Function
+	HiLink clStatement	Statement
 
 	delcommand HiLink
 endif
 
 let b:current_syntax = "cl"
 
-" vim: ts=4 sw=4
+" vim: ts=8 sw=8
diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim
index 8a8e833534ff8aa283a7a204cdfa4e473d3c80c7..77515bc5fac037dd4f9445423d2f0a25796a025b 100644
--- a/runtime/syntax/dcl.vim
+++ b/runtime/syntax/dcl.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	DCL (Digital Command Language - vms)
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Sep 06, 2005
-" Version:	4
+" Last Change:	Apr 12, 2006
+" Version:	5
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 
 " For version 5.x: Clear all syntax items
@@ -83,7 +83,7 @@ syn match   dclStart	"^\$"	skipwhite nextgroup=dclExe
 syn match   dclContinue	"-$"
 syn match   dclComment	"^\$!.*$"	contains=@dclCommentGroup
 syn match   dclExe	"\I\i*"	contained
-syn match   dclTodo	"DEBUG\|TODO"	contained
+syn keyword dclTodo contained	COMBAK	DEBUG	FIXME	TODO	XXX
 
 " Assignments and Operators
 syn match   dclAssign	":==\="
diff --git a/runtime/syntax/gp.vim b/runtime/syntax/gp.vim
index 1999749c095633cfeeb662da0432e806a63797b7..4be13440d5477e705530b2ee63e2be6520fbc05c 100644
--- a/runtime/syntax/gp.vim
+++ b/runtime/syntax/gp.vim
@@ -1,7 +1,8 @@
 " Vim syntax file
-" Language:	gp (version 2.1)
-" Maintainer:	Karim Belabas <Karim.Belabas@math.u-psud.fr>
-" Last change:	2001 Sep 02
+" Language:	gp (version 2.2)
+" Maintainer:	Karim Belabas <Karim.Belabas@math.u-bordeaux.fr>
+" Last change:	2006 Apr 12
+" URL:		http://pari.math.u-bordeaux.fr
 
 if version < 600
   syntax clear
@@ -9,17 +10,19 @@ elseif exists("b:current_syntax")
   finish
 endif
 
-" some control statements
+" control statements
 syntax keyword gpStatement	break return next
 syntax keyword gpConditional	if
 syntax keyword gpRepeat		until while for fordiv forprime forstep forvec
+" storage class
 syntax keyword gpScope		local global
-
-syntax keyword gpInterfaceKey	buffersize colors compatible debug debugmem
-syntax keyword gpInterfaceKey	echo format help histsize log logfile output
-syntax keyword gpInterfaceKey	parisize path primelimit prompt psfile
-syntax keyword gpInterfaceKey	realprecision seriesprecision simplify
-syntax keyword gpInterfaceKey	strictmatch timer
+" defaults
+syntax keyword gpInterfaceKey	colors compatible datadir debug debugfiles
+syntax keyword gpInterfaceKey	debugmem echo factor_add_primes format help
+syntax keyword gpInterfaceKey	histsize lines log logfile new_galois_format
+syntax keyword gpInterfaceKey	output parisize path prettyprinter primelimit
+syntax keyword gpInterfaceKey	prompt prompt_cont psfile realprecision secure
+syntax keyword gpInterfaceKey	seriesprecision simplify strictmatch TeXstyle timer
 
 syntax match   gpInterface	"^\s*\\[a-z].*"
 syntax keyword gpInterface	default
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index c511a58e475fb6b86487dce89ac74c9f11fe821b..5c2abe024a29c6f7766d1f5acb5215a2d25f11d6 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	Bram Moolenaar (Bram@vim.org)
-" Last Change:	2006 Apr 06
+" Last Change:	2006 Apr 12
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -13,14 +13,15 @@ syn match helpSectionDelim	"^=\{3,}.*===$"
 syn match helpSectionDelim	"^-\{3,}.*--$"
 syn region helpExample		matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
 if has("ebcdic")
-  syn match helpHyperTextJump	"\\\@<!|[^"*|]\+|"
+  syn match helpHyperTextJump	"\\\@<!|[^"*|]\+|" contains=helpBar
   syn match helpHyperTextEntry	"\*[^"*|]\+\*\s"he=e-1
   syn match helpHyperTextEntry	"\*[^"*|]\+\*$"
 else
-  syn match helpHyperTextJump	"\\\@<!|[#-)!+-~]\+|"
+  syn match helpHyperTextJump	"\\\@<!|[#-)!+-~]\+|" contains=helpBar
   syn match helpHyperTextEntry	"\*[#-)!+-~]\+\*\s"he=e-1
   syn match helpHyperTextEntry	"\*[#-)!+-~]\+\*$"
 endif
+syn match helpBar		contained "|"
 syn match helpNormal		"|.*====*|"
 syn match helpNormal		":|vim:|"	" for :help modeline
 syn match helpVim		"Vim version [0-9.a-z]\+"
@@ -122,6 +123,7 @@ syn sync minlines=40
 hi def link helpExampleStart	helpIgnore
 hi def link helpIgnore		Ignore
 hi def link helpHyperTextJump	Subtitle
+hi def link helpBar		Ignore
 hi def link helpHyperTextEntry	String
 hi def link helpHeadline	Statement
 hi def link helpHeader		PreProc
diff --git a/runtime/syntax/kconfig.vim b/runtime/syntax/kconfig.vim
index f7910144bc1bb9e21f8acf2927b742be4dd91c0c..00c07d2cc51adbe191ea6ad0b29c342b7623990c 100644
--- a/runtime/syntax/kconfig.vim
+++ b/runtime/syntax/kconfig.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-11
+" Latest Revision:  2006-04-12
 
 if exists("b:current_syntax")
   finish
@@ -180,7 +180,7 @@ syn match   kconfigRangeNCSymbol2     '\<\k\+\>'
 
 syn region  kconfigHelpText           contained
       \ matchgroup=kconfigConfigOption
-      \ start='\%(help\|---help---\)\s*\n\ze\z(\s\+\)'
+      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
       \ skip='^$'
       \ end='^\z1\@!'
       \ nextgroup=@kconfigConfigOptions
@@ -584,6 +584,8 @@ syn match   kconfigConfOptExprGrpE    ')'
                                       \           kconfigConfOptExprOr
                                       \ skipwhite skipnl
 
+syn sync minlines=50
+
 hi def link kconfigTodo                 Todo
 hi def link kconfigComment              Comment
 hi def link kconfigKeyword              Keyword
@@ -672,6 +674,8 @@ syn keyword kconfigPreProc            source
                                       \ nextgroup=kconfigPath
                                       \ skipwhite
 
+syn keyword kconfigTriState           y m n
+
 syn match   kconfigSpecialChar        contained '\\.'
 
 syn region  kconfigPath               matchgroup=kconfigPath
@@ -697,13 +701,13 @@ syn keyword kconfigType               bool boolean tristate string hex int
 
 syn keyword kconfigOption             prompt default requires select range
                                       \ optional
-syn match   kconfigOption             'depends\%( on\)'
+syn match   kconfigOption             'depends\%( on\)\='
 
 syn keyword kconfigMacro              def_bool def_tristate
 
-syn region  kconfigHelpText           contained
-      \ matchgroup=kconfigConfigOption
-      \ start='\%(help\|---help---\)\s*\n\ze\z(\s\+\)'
+syn region  kconfigHelpText
+      \ matchgroup=kconfigOption
+      \ start='\%(help\|---help---\)\ze\s*\n\z(\s\+\)'
       \ skip='^$'
       \ end='^\z1\@!'
 
@@ -712,6 +716,7 @@ hi def link kconfigComment      Comment
 hi def link kconfigKeyword      Keyword
 hi def link kconfigConditional  Conditional
 hi def link kconfigPreProc      PreProc
+hi def link kconfigTriState     Boolean
 hi def link kconfigSpecialChar  SpecialChar
 hi def link kconfigPath         String
 hi def link kconfigString       String
diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim
index 1d5f185045307c31e2ec995ac9b582f70e688da7..e21dc125cdad830e15b75aa0a7b8a674472a0801 100644
--- a/runtime/syntax/maple.vim
+++ b/runtime/syntax/maple.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Maple V (based on release 4)
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Sep 06, 2005
-" Version:	7
+" Last Change:	Apr 12, 2006
+" Version:	8
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Package Function Selection: {{{1
@@ -113,7 +113,7 @@ syn keyword mvPackage	tensor	TypeTools	Units	VariationalCalculus
 syn keyword mvPackage	VectorCalculus	Worksheet	XMLTools
 
 " Language Support: {{{1
-syn keyword mvTodo	contained	TODO
+syn keyword mvTodo	contained	COMBAK	FIXME	TODO	XXX
 if exists("g:mapleversion") && g:mapleversion < 9
  syn region  mvString	start=+`+ skip=+``+ end=+`+	keepend	contains=mvTodo
  syn region  mvString	start=+"+ skip=+""+ end=+"+	keepend
diff --git a/runtime/syntax/progress.vim b/runtime/syntax/progress.vim
index 576042397e69c8b8c58485a29796d193daefd256..fb2b161455940543bc7145bd17a43b9651f32b46 100644
--- a/runtime/syntax/progress.vim
+++ b/runtime/syntax/progress.vim
@@ -1,13 +1,13 @@
 " Vim syntax file
-" Language:				Progress 4GL
+" Language:		Progress 4GL
 " Filename extensions:	*.p (collides with Pascal),
-"						*.i (collides with assembler)
-"						*.w (collides with cweb)
-" Maintainer:			Philip Uren			<philuSPAX@ieee.org> Remove "SPAX" spam block
-" Contributors:         Chris Ruprecht		<chrup@mac.com>
-"						Mikhail Kuperblum	<mikhail@whasup.com>
-"						John Florian		<jflorian@voyager.net>
-" Last Change:			Tue Apr 11 10:18:23 EST 2006
+"			*.i (collides with assembler)
+"			*.w (collides with cweb)
+" Maintainer:		Philip Uren		<philuSPAX@ieee.org> Remove "SPAX" spam block
+" Contributors:         Chris Ruprecht		<chrup@mac.com> (Chris, where are you now?)
+"			Mikhail Kuperblum	<mikhail@whasup.com>
+"			John Florian		<jflorian@voyager.net>
+" Last Change:		Wed Apr 12 08:55:35 EST 2006
 " $Id$
 
 " For version 5.x: Clear all syntax items
@@ -30,159 +30,159 @@ set expandtab
 syn case ignore
 
 " Progress Blocks of code and mismatched "end." errors.
-syn match   ProgressEndError		"\<end\>"
-syn region ProgressDoBlock transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
-syn region ProgressForBlock transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
-syn region ProgressRepeatBlock transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
-syn region ProgressCaseBlock transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>\|\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
+syn match	ProgressEndError	"\<end\>"
+syn region	ProgressDoBlock		transparent matchgroup=ProgressDo start="\<do\>" matchgroup=ProgressDo end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
+syn region	ProgressForBlock	transparent matchgroup=ProgressFor start="\<for\>" matchgroup=ProgressFor end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
+syn region	ProgressRepeatBlock	transparent matchgroup=ProgressRepeat start="\<repeat\>" matchgroup=ProgressRepeat end="\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
+syn region	ProgressCaseBlock	transparent matchgroup=ProgressCase start="\<case\>" matchgroup=ProgressCase end="\<end\scase\>\|\<end\>" contains=ALLBUT,ProgressProcedure,ProgressFunction
 
 " These are Progress reserved words,
 " and they could go in ProgressReserved,
 " but I found it more helpful to highlight them in a different color.
-syn keyword ProgressConditional	if else then when otherwise
-syn keyword ProgressFor				each where
+syn keyword	ProgressConditional	if else then when otherwise
+syn keyword	ProgressFor		each where
 
 " Make those TODO and debugging notes stand out!
-syn keyword	ProgressTodo			contained	TODO BUG FIX
-syn keyword ProgressDebug			contained	DEBUG
-syn keyword ProgressDebug						debugger
-syn match   ProgressTodo            contained   "NEED[S]*\s\s*WORK"
+syn keyword	ProgressTodo		contained	TODO BUG FIX
+syn keyword	ProgressDebug		contained	DEBUG
+syn keyword	ProgressDebug		debugger
+syn match  	ProgressTodo            contained	"NEED[S]*\s\s*WORK"
 
 " If you like to highlight the whole line of
 " the start and end of procedures
 " to make the whole block of code stand out:
-syn match ProgressProcedure		"^\s*procedure.*"
-syn match ProgressProcedure		"^\s*end\s\s*procedure.*"
-syn match ProgressFunction		"^\s*function.*"
-syn match ProgressFunction		"^\s*end\s\s*function.*"
+syn match	ProgressProcedure	"^\s*procedure.*"
+syn match	ProgressProcedure	"^\s*end\s\s*procedure.*"
+syn match	ProgressFunction	"^\s*function.*"
+syn match	ProgressFunction	"^\s*end\s\s*function.*"
 " ... otherwise use this:
 " syn keyword ProgressFunction	procedure function
 
-syn keyword ProgressReserved	accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space]
-syn keyword ProgressReserved	authorization auto-ret[urn] avail[able] back[ground] before-h[ide] begins bell between blank break btos by call can-do can-find
-syn keyword ProgressReserved	center[ed] character check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of
-syn keyword ProgressReserved	cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers
-syn keyword ProgressReserved	dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimal decimals declare
-syn keyword ProgressReserved	def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp
-syn keyword ProgressReserved	disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive
-syn keyword ProgressReserved	exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive
-syn keyword ProgressReserved	find-global find-next-occurrence find-prev-occurrence find-select find-wrap-around first first-of focus font form form[at]
-syn keyword ProgressReserved	fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line frame-name frame-row frame-val[ue]
-syn keyword ProgressReserved	from from-c[hars] from-p[ixels] gateway[s] get-byte get-codepage[s] get-coll[ations] get-key-val[ue] getbyte global go-on
-syn keyword ProgressReserved	go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert
-syn keyword ProgressReserved	integer into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label
-syn keyword ProgressReserved	last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class
-syn keyword ProgressReserved	map member message message-lines mouse mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s]
-syn keyword ProgressReserved	no-lock no-map no-mes[sage] no-pause no-prefe[tch] no-undo no-val[idate] no-wait not null num-ali[ases] num-dbs num-entries
-syn keyword ProgressReserved	of off old on open opsys option or os-append os-command os-copy os-create-dir os-delete os-dir os-drive[s] os-error os-rename
-syn keyword ProgressReserved	os2 os400 output overlay page page-bot[tom] page-num[ber] page-top param[eter] pause pdbname persist[ent] pixels
-syn keyword ProgressReserved	preproc[ess] privileges proc-ha[ndle] proc-st[atus] process program-name Progress prompt prompt[-for] promsgs propath provers[ion]
-syn keyword ProgressReserved	put put-byte put-key-val[ue] putbyte query query-tuning quit r-index rcode-informatio[n] readkey recid record-len[gth] rect[angle]
-syn keyword ProgressReserved	release reposition retain retry return return-val[ue] revert revoke run save schema screen screen-io screen-lines
-syn keyword ProgressReserved	scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream
-syn keyword ProgressReserved	stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title
-syn keyword ProgressReserved	to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update
-syn keyword ProgressReserved	use-index use-revvideo use-underline user user[id] using v6frame value values variable view view-as vms wait-for web-con[text]
-syn keyword ProgressReserved	window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit
-syn keyword ProgressReserved	_control _list _memory _msg _pcontrol _serial[-num] _trace 
+syn keyword	ProgressReserved	accum[ulate] active-window add alias all alter ambig[uous] analyz[e] and any apply as asc[ending] assign at attr[-space]
+syn keyword	ProgressReserved	authorization auto-ret[urn] avail[able] back[ground] before-h[ide] begins bell between blank break btos by call can-do can-find
+syn keyword	ProgressReserved	center[ed] character check chr clear clipboard col colon color col[umn] column-lab[el] col[umns] compiler connected control count-of
+syn keyword	ProgressReserved	cpstream create ctos current current-changed current-lang[uage] current-window current_date curs[or] database dataservers
+syn keyword	ProgressReserved	dbcodepage dbcollation dbname dbrest[rictions] dbtaskid dbtype dbvers[ion] dde deblank debug-list debugger decimal decimals declare
+syn keyword	ProgressReserved	def default default-noxl[ate] default-window def[ine] delete delimiter desc[ending] dict[ionary] disable discon[nect] disp
+syn keyword	ProgressReserved	disp[lay] distinct dos down drop editing enable encode entry error-stat[us] escape etime except exclusive
+syn keyword	ProgressReserved	exclusive[-lock] exclusive-web-us[er] exists export false fetch field field[s] file-info[rmation] fill find find-case-sensitive
+syn keyword	ProgressReserved	find-global find-next-occurrence find-prev-occurrence find-select find-wrap-around first first-of focus font form form[at]
+syn keyword	ProgressReserved	fram[e] frame-col frame-db frame-down frame-field frame-file frame-inde[x] frame-line frame-name frame-row frame-val[ue]
+syn keyword	ProgressReserved	from from-c[hars] from-p[ixels] gateway[s] get-byte get-codepage[s] get-coll[ations] get-key-val[ue] getbyte global go-on
+syn keyword	ProgressReserved	go-pend[ing] grant graphic-e[dge] group having header help hide import in index indicator input input-o[utput] insert
+syn keyword	ProgressReserved	integer into is is-attr[-space] join kblabel key-code key-func[tion] key-label keycode keyfunc[tion] keylabel keys keyword label
+syn keyword	ProgressReserved	last last-even[t] last-key last-of lastkey ldbname leave library like line-count[er] listi[ng] locked lookup machine-class
+syn keyword	ProgressReserved	map member message message-lines mouse mpe new next next-prompt no no-attr[-space] no-error no-f[ill] no-help no-hide no-label[s]
+syn keyword	ProgressReserved	no-lock no-map no-mes[sage] no-pause no-prefe[tch] no-undo no-val[idate] no-wait not null num-ali[ases] num-dbs num-entries
+syn keyword	ProgressReserved	of off old on open opsys option or os-append os-command os-copy os-create-dir os-delete os-dir os-drive[s] os-error os-rename
+syn keyword	ProgressReserved	os2 os400 output overlay page page-bot[tom] page-num[ber] page-top param[eter] pause pdbname persist[ent] pixels
+syn keyword	ProgressReserved	preproc[ess] privileges proc-ha[ndle] proc-st[atus] process program-name Progress prompt prompt[-for] promsgs propath provers[ion]
+syn keyword	ProgressReserved	put put-byte put-key-val[ue] putbyte query query-tuning quit r-index rcode-informatio[n] readkey recid record-len[gth] rect[angle]
+syn keyword	ProgressReserved	release reposition retain retry return return-val[ue] revert revoke run save schema screen screen-io screen-lines
+syn keyword	ProgressReserved	scroll sdbname search seek select self session set setuser[id] share[-lock] shared show-stat[s] skip some space status stream
+syn keyword	ProgressReserved	stream-io string-xref system-dialog table term term[inal] text text-cursor text-seg[-growth] this-procedure time title
+syn keyword	ProgressReserved	to today top-only trans trans[action] trigger triggers trim true underl[ine] undo unform[atted] union unique unix up update
+syn keyword	ProgressReserved	use-index use-revvideo use-underline user user[id] using v6frame value values variable view view-as vms wait-for web-con[text]
+syn keyword	ProgressReserved	window window-maxim[ized] window-minim[ized] window-normal with work-tab[le] workfile write xcode xref yes _cbit
+syn keyword	ProgressReserved	_control _list _memory _msg _pcontrol _serial[-num] _trace 
 
 " Strings. Handles embedded quotes.
 " Note that, for some reason, Progress doesn't use the backslash, "\"
 " as the escape character; it uses tilde, "~".
-syn region ProgressString	matchgroup=ProgressQuote	start=+"+ end=+"+	skip=+\~'\|\~\~+
-syn region ProgressString	matchgroup=ProgressQuote	start=+'+ end=+'+	skip=+\~'\|\~\~+
+syn region	ProgressString		matchgroup=ProgressQuote	start=+"+ end=+"+	skip=+\~'\|\~\~+
+syn region	ProgressString		matchgroup=ProgressQuote	start=+'+ end=+'+	skip=+\~'\|\~\~+
 
-syn match  ProgressIdentifier			"\<[a-zA-Z_%#]+\>()"
+syn match	ProgressIdentifier	"\<[a-zA-Z_%#]+\>()"
 
-" syn match  ProgressDelimiter			"()"
+" syn match	ProgressDelimiter	"()"
 
-syn match  ProgressMatrixDelimiter	"[][]"
+syn match	ProgressMatrixDelimiter	"[][]"
 " If you prefer you can highlight the range
-"syn match  ProgressMatrixDelimiter		"[\d\+\.\.\d\+]"
+"syn match	ProgressMatrixDelimiter	"[\d\+\.\.\d\+]"
 
-syn match  ProgressNumber				"\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
-syn match  ProgressByte					"\$[0-9a-fA-F]\+"
+syn match	ProgressNumber		"\<\-\=\d\+\(u\=l\=\|lu\|f\)\>"
+syn match	ProgressByte		"\$[0-9a-fA-F]\+"
 
 " More values: Logicals, and Progress's unknown value, ?.
-syn match   ProgressNumber				"?"
-syn keyword ProgressNumber				true false yes no
+syn match	ProgressNumber		"?"
+syn keyword	ProgressNumber		true false yes no
 
 " If you don't like tabs:
-syn match ProgressShowTab "\t"
+syn match	ProgressShowTab		"\t"
 
 " If you don't like white space on the end of lines:
-" syn match   ProgressSpaceError "\s\+$"
+" syn match	ProgressSpaceError	"\s\+$"
 
-syn region ProgressComment		start="/\*"  end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug
-syn region ProgressInclude		start="^[ 	]*[{][^&]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
-syn region ProgressPreProc		start="&" end="\>" contained
+syn region	ProgressComment		start="/\*" end="\*/" contains=ProgressComment,ProgressTodo,ProgressDebug
+syn region	ProgressInclude		start="^[ 	]*[{][^&]" end="[}]" contains=ProgressPreProc,ProgressOperator,ProgressString,ProgressComment
+syn region	ProgressPreProc		start="&" end="\>" contained
 
 " This next line works reasonably well.
-" syn match ProgressOperator        "[!;|)(:.><+*=-]"
+" syn match	ProgressOperator        "[!;|)(:.><+*=-]"
 "
 " Progress allows a '-' to be part of an identifier.  To be considered
 " the subtraction/negation operation operator it needs a non-word
 " character on either side.  Also valid are cases where the minus
 " operation appears at the beginning or end of a line.
 " This next line trips up on "no-undo" etc.
-" syn match ProgressOperator    "[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
-syn match ProgressOperator      "[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"
-
-syn keyword ProgressOperator	<= <> >= abs[olute] accelerator across add-first add-last advise alert-box allow-replication ansi-only anywhere append appl-alert[-boxes] application as-cursor ask-overwrite
-syn keyword ProgressOperator	attach[ment] auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-z[ap] available-formats ave[rage] avg backward[s] base-key batch[-mode] bgc[olor] binary
-syn keyword ProgressOperator	bind-where block-iteration-display border-bottom border-bottom-ch[ars] border-bottom-pi[xels] border-left border-left-char[s] border-left-pixe[ls] border-right border-right-cha[rs]
-syn keyword ProgressOperator	border-right-pix[els] border-t[op] border-t[op-chars] border-top-pixel[s] both bottom box box-select[able] browse browse-header buffer buffer-chars buffer-lines
-syn keyword ProgressOperator	button button[s] byte cache cache-size can-query can-set cancel-break cancel-button caps careful-paint case-sensitive cdecl char[acter] character_length charset
-syn keyword ProgressOperator	checked choose clear-select[ion] close code codepage codepage-convert col-of colon-align[ed] color-table column-bgc[olor] column-dcolor column-fgc[olor] column-font
-syn keyword ProgressOperator	column-label-bgc[olor] column-label-dcolor column-label-fgc[olor] column-label-font column-of column-pfc[olor] column-sc[rolling] combo-box command compile complete
-syn keyword ProgressOperator	connect constrained contents context context-pop[up] control-containe[r] c[ontrol-form] convert-to-offse[t] convert count cpcase cpcoll cpint[ernal] cplog
-syn keyword ProgressOperator	cpprint cprcodein cprcodeout cpterm crc-val[ue] c[reate-control] create-result-list-entry create-test-file current-column current-environm[ent] current-iteration
-syn keyword ProgressOperator	current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-entry-retur[n] data-t[ype] date date-f[ormat] day db-references
-syn keyword ProgressOperator	dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] dec[imal] default-b[utton] default-extensio[n] defer-lob-fetch define defined delete-char delete-current-row
-syn keyword ProgressOperator	delete-line delete-selected-row delete-selected-rows deselect-focused-row deselect-rows deselect-selected-row d[esign-mode] dialog-box dialog-help dir disabled display-message
-syn keyword ProgressOperator	display-t[ype] double drag-enabled drop-down drop-down-list dump dynamic echo edge edge[-chars] edge-p[ixels] editor empty end-key endkey entered eq error error-col[umn]
-syn keyword ProgressOperator	error-row event-t[ype] event[s] exclusive-id execute exp expand extended extent external extract fetch-selected-row fgc[olor] file file-name file-off[set] file-type
-syn keyword ProgressOperator	filename fill-in filled filters first-child first-column first-proc[edure] first-tab-i[tem] fixed-only float focused-row font-based-layout font-table force-file
-syn keyword ProgressOperator	fore[ground] form-input forward[s] frame-spa[cing] frame-x frame-y frequency from-cur[rent] full-height full-height-char[s] full-height-pixe[ls] full-pathn[ame]
-syn keyword ProgressOperator	full-width full-width[-chars] full-width-pixel[s] ge get get-blue[-value] g[et-char-property] get-double get-dynamic get-file get-float get-green[-value]
-syn keyword ProgressOperator	get-iteration get-license get-long get-message get-number get-pointer-value get-red[-value] get-repositioned-row get-selected-wid[get] get-short get-signature get-size
-syn keyword ProgressOperator	get-string get-tab-item get-text-height get-text-height-char[s] get-text-height-pixe[ls] get-text-width get-text-width-c[hars] get-text-width-pixel[s] get-unsigned-short
-syn keyword ProgressOperator	grayed grid-factor-horizont[al] grid-factor-vert[ical] grid-set grid-snap grid-unit-height grid-unit-height-cha[rs] grid-unit-height-pix[els] grid-unit-width grid-unit-width-char[s]
-syn keyword ProgressOperator	grid-unit-width-pixe[ls] grid-visible gt handle height height[-chars] height-p[ixels] help-con[text] helpfile-n[ame] hidden hint hori[zontal] hwnd image image-down
-syn keyword ProgressOperator	image-insensitive image-size image-size-c[hars] image-size-pixel[s] image-up immediate-display index-hint indexed-reposition info[rmation] init init[ial] initial-dir
-syn keyword ProgressOperator	initial-filter initiate inner inner-chars inner-lines insert-b[acktab] insert-file insert-row insert-string insert-t[ab] int[eger] internal-entries is-lead-byte
-syn keyword ProgressOperator	is-row-selected is-selected item items-per-row join-by-sqldb keep-frame-z-ord[er] keep-messages keep-tab-order key keyword-all label-bgc[olor] label-dc[olor] label-fgc[olor]
-syn keyword ProgressOperator	label-font label-pfc[olor] labels language[s] large large-to-small last-child last-tab-i[tem] last-proce[dure] lc le leading left left-align[ed] left-trim length
-syn keyword ProgressOperator	line list-events list-items list-query-attrs list-set-attrs list-widgets load l[oad-control] load-icon load-image load-image-down load-image-insensitive load-image-up
-syn keyword ProgressOperator	load-mouse-point[er] load-small-icon log logical lookahead lower lt manual-highlight margin-extra margin-height margin-height-ch[ars] margin-height-pi[xels] margin-width
-syn keyword ProgressOperator	margin-width-cha[rs] margin-width-pix[els] matches max max-chars max-data-guess max-height max-height[-chars] max-height-pixel[s] max-rows max-size max-val[ue] max-width
-syn keyword ProgressOperator	max-width[-chars] max-width-p[ixels] maximize max[imum] memory menu menu-bar menu-item menu-k[ey] menu-m[ouse] menubar message-area message-area-font message-line
-syn keyword ProgressOperator	min min-height min-height[-chars] min-height-pixel[s] min-size min-val[ue] min-width min-width[-chars] min-width-p[ixels] min[imum] mod modified mod[ulo] month mouse-p[ointer]
-syn keyword ProgressOperator	movable move-after-tab-i[tem] move-before-tab-[item] move-col[umn] move-to-b[ottom] move-to-eof move-to-t[op] multiple multiple-key multitasking-interval must-exist
-syn keyword ProgressOperator	name native ne new-row next-col[umn] next-sibling next-tab-ite[m] next-value no-apply no-assign no-bind-where no-box no-column-scroll[ing] no-convert no-current-value
-syn keyword ProgressOperator	no-debug no-drag no-echo no-index-hint no-join-by-sqldb no-lookahead no-row-markers no-scrolling no-separate-connection no-separators no-und[erline] no-word-wrap
-syn keyword ProgressOperator	none num-but[tons] num-col[umns] num-copies num-formats num-items num-iterations num-lines num-locked-colum[ns] num-messages num-results num-selected num-selected-rows
-syn keyword ProgressOperator	num-selected-widgets num-tabs num-to-retain numeric numeric-f[ormat] octet_length ok ok-cancel on-frame[-border] ordered-join ordinal orientation os-getenv outer
-syn keyword ProgressOperator	outer-join override owner page-size page-wid[th] paged parent partial-key pascal pathname pfc[olor] pinnable pixels-per-colum[n] pixels-per-row popup-m[enu] popup-o[nly]
-syn keyword ProgressOperator	position precision presel[ect] prev prev-col[umn] prev-sibling prev-tab-i[tem] primary printer-control-handle printer-setup private-d[ata] profiler Progress-s[ource]
-syn keyword ProgressOperator	publish put-double put-float put-long put-short put-string put-unsigned-short query-off-end question radio-buttons radio-set random raw raw-transfer read-file read-only
-syn keyword ProgressOperator	real recursive refresh refreshable replace replace-selection-text replication-create replication-delete replication-write request resiza[ble] resize retry-cancel
-syn keyword ProgressOperator	return-ins[erted] return-to-start-di[r] reverse-from right right-align[ed] right-trim round row row-ma[rkers] row-of rowid rule rule-row rule-y save-as save-file
-syn keyword ProgressOperator	screen-val[ue] scroll-bars scroll-delta scroll-horiz-value scroll-offset scroll-to-current-row scroll-to-i[tem] scroll-to-selected-row scroll-vert-value scrollable
-syn keyword ProgressOperator	scrollbar-horizo[ntal] scrollbar-vertic[al] scrolled-row-positio[n] scrolling se-check-pools se-enable-of[f] se-enable-on se-num-pools se-use-messa[ge] section select-focused-row
-syn keyword ProgressOperator	select-next-row select-prev-row select-repositioned-row select-row selectable selected selected-items selection-end selection-list selection-start selection-text
-syn keyword ProgressOperator	send sensitive separate-connection separators set-blue[-value] set-break set-cell-focus set-contents set-dynamic set-green[-value] set-leakpoint set-pointer-valu[e]
-syn keyword ProgressOperator	s[et-property] set-red[-value] set-repositioned-row set-selection set-size set-wait[-state] side-lab side-lab[e] side-lab[el] side-label-handl[e] side-lab[els] silent
-syn keyword ProgressOperator	simple single size size-c[hars] size-p[ixels] slider smallint sort source source-procedure sql sqrt start status-area status-area-font status-bar stdcall stenciled stop stoppe[d]
-syn keyword ProgressOperator	stored-proc[edure] string sub-ave[rage] sub-count sub-max[imum] sub-me[nu] sub-menu-help sub-min[imum] sub-total subscribe subst[itute] substr[ing] subtype sum super suppress-warning[s]
-syn keyword ProgressOperator	system-alert-box[es] system-help tab-position tabbable target target-procedure temp-dir[ectory] temp-table terminate text-selected three-d through thru tic-marks time-source title-bgc[olor]
-syn keyword ProgressOperator	title-dc[olor] title-fgc[olor] title-fo[nt] to-rowid toggle-box tool-bar top topic total trailing trunc[ate] type unbuff[ered] unique-id unload unsubscribe upper use use-dic[t-exps]
-syn keyword ProgressOperator	use-filename use-text v6display valid-event valid-handle validate validate-condition validate-message var[iable] vert[ical] virtual-height virtual-height-c[hars]
-syn keyword ProgressOperator	virtual-height-pixel[s] virtual-width virtual-width-ch[ars] virtual-width-pi[xels] visible wait warning weekday widget widget-e[nter] widget-h[andle] widget-l[eave]
-syn keyword ProgressOperator	widget-pool width width[-chars] width-p[ixels] window-name window-sta[te] window-sys[tem] word-wrap x-of y-of year yes-no yes-no-cancel _dcm
-
-syn keyword ProgressType	    char[acter] int[eger] format
-syn keyword ProgressType	    var[iable] log[ical] da[te]
+" syn match	ProgressOperator	"[!;|)(:.><+*=]\|\W-\W\|^-\W\|\W-$"
+syn match	ProgressOperator	"[!;|)(:.><+*=]\|\s-\s\|^-\s\|\s-$"
+
+syn keyword	ProgressOperator	<= <> >= abs[olute] accelerator across add-first add-last advise alert-box allow-replication ansi-only anywhere append appl-alert[-boxes] application as-cursor ask-overwrite
+syn keyword	ProgressOperator	attach[ment] auto-end-key auto-endkey auto-go auto-ind[ent] auto-resize auto-z[ap] available-formats ave[rage] avg backward[s] base-key batch[-mode] bgc[olor] binary
+syn keyword	ProgressOperator	bind-where block-iteration-display border-bottom border-bottom-ch[ars] border-bottom-pi[xels] border-left border-left-char[s] border-left-pixe[ls] border-right border-right-cha[rs]
+syn keyword	ProgressOperator	border-right-pix[els] border-t[op] border-t[op-chars] border-top-pixel[s] both bottom box box-select[able] browse browse-header buffer buffer-chars buffer-lines
+syn keyword	ProgressOperator	button button[s] byte cache cache-size can-query can-set cancel-break cancel-button caps careful-paint case-sensitive cdecl char[acter] character_length charset
+syn keyword	ProgressOperator	checked choose clear-select[ion] close code codepage codepage-convert col-of colon-align[ed] color-table column-bgc[olor] column-dcolor column-fgc[olor] column-font
+syn keyword	ProgressOperator	column-label-bgc[olor] column-label-dcolor column-label-fgc[olor] column-label-font column-of column-pfc[olor] column-sc[rolling] combo-box command compile complete
+syn keyword	ProgressOperator	connect constrained contents context context-pop[up] control-containe[r] c[ontrol-form] convert-to-offse[t] convert count cpcase cpcoll cpint[ernal] cplog
+syn keyword	ProgressOperator	cpprint cprcodein cprcodeout cpterm crc-val[ue] c[reate-control] create-result-list-entry create-test-file current-column current-environm[ent] current-iteration
+syn keyword	ProgressOperator	current-result-row current-row-modified current-value cursor-char cursor-line cursor-offset data-entry-retur[n] data-t[ype] date date-f[ormat] day db-references
+syn keyword	ProgressOperator	dcolor dde-error dde-i[d] dde-item dde-name dde-topic debu[g] dec[imal] default-b[utton] default-extensio[n] defer-lob-fetch define defined delete-char delete-current-row
+syn keyword	ProgressOperator	delete-line delete-selected-row delete-selected-rows deselect-focused-row deselect-rows deselect-selected-row d[esign-mode] dialog-box dialog-help dir disabled display-message
+syn keyword	ProgressOperator	display-t[ype] double drag-enabled drop-down drop-down-list dump dynamic echo edge edge[-chars] edge-p[ixels] editor empty end-key endkey entered eq error error-col[umn]
+syn keyword	ProgressOperator	error-row event-t[ype] event[s] exclusive-id execute exp expand extended extent external extract fetch-selected-row fgc[olor] file file-name file-off[set] file-type
+syn keyword	ProgressOperator	filename fill-in filled filters first-child first-column first-proc[edure] first-tab-i[tem] fixed-only float focused-row font-based-layout font-table force-file
+syn keyword	ProgressOperator	fore[ground] form-input forward[s] frame-spa[cing] frame-x frame-y frequency from-cur[rent] full-height full-height-char[s] full-height-pixe[ls] full-pathn[ame]
+syn keyword	ProgressOperator	full-width full-width[-chars] full-width-pixel[s] ge get get-blue[-value] g[et-char-property] get-double get-dynamic get-file get-float get-green[-value]
+syn keyword	ProgressOperator	get-iteration get-license get-long get-message get-number get-pointer-value get-red[-value] get-repositioned-row get-selected-wid[get] get-short get-signature get-size
+syn keyword	ProgressOperator	get-string get-tab-item get-text-height get-text-height-char[s] get-text-height-pixe[ls] get-text-width get-text-width-c[hars] get-text-width-pixel[s] get-unsigned-short
+syn keyword	ProgressOperator	grayed grid-factor-horizont[al] grid-factor-vert[ical] grid-set grid-snap grid-unit-height grid-unit-height-cha[rs] grid-unit-height-pix[els] grid-unit-width grid-unit-width-char[s]
+syn keyword	ProgressOperator	grid-unit-width-pixe[ls] grid-visible gt handle height height[-chars] height-p[ixels] help-con[text] helpfile-n[ame] hidden hint hori[zontal] hwnd image image-down
+syn keyword	ProgressOperator	image-insensitive image-size image-size-c[hars] image-size-pixel[s] image-up immediate-display index-hint indexed-reposition info[rmation] init init[ial] initial-dir
+syn keyword	ProgressOperator	initial-filter initiate inner inner-chars inner-lines insert-b[acktab] insert-file insert-row insert-string insert-t[ab] int[eger] internal-entries is-lead-byte
+syn keyword	ProgressOperator	is-row-selected is-selected item items-per-row join-by-sqldb keep-frame-z-ord[er] keep-messages keep-tab-order key keyword-all label-bgc[olor] label-dc[olor] label-fgc[olor]
+syn keyword	ProgressOperator	label-font label-pfc[olor] labels language[s] large large-to-small last-child last-tab-i[tem] last-proce[dure] lc le leading left left-align[ed] left-trim length
+syn keyword	ProgressOperator	line list-events list-items list-query-attrs list-set-attrs list-widgets load l[oad-control] load-icon load-image load-image-down load-image-insensitive load-image-up
+syn keyword	ProgressOperator	load-mouse-point[er] load-small-icon log logical lookahead lower lt manual-highlight margin-extra margin-height margin-height-ch[ars] margin-height-pi[xels] margin-width
+syn keyword	ProgressOperator	margin-width-cha[rs] margin-width-pix[els] matches max max-chars max-data-guess max-height max-height[-chars] max-height-pixel[s] max-rows max-size max-val[ue] max-width
+syn keyword	ProgressOperator	max-width[-chars] max-width-p[ixels] maximize max[imum] memory menu menu-bar menu-item menu-k[ey] menu-m[ouse] menubar message-area message-area-font message-line
+syn keyword	ProgressOperator	min min-height min-height[-chars] min-height-pixel[s] min-size min-val[ue] min-width min-width[-chars] min-width-p[ixels] min[imum] mod modified mod[ulo] month mouse-p[ointer]
+syn keyword	ProgressOperator	movable move-after-tab-i[tem] move-before-tab-[item] move-col[umn] move-to-b[ottom] move-to-eof move-to-t[op] multiple multiple-key multitasking-interval must-exist
+syn keyword	ProgressOperator	name native ne new-row next-col[umn] next-sibling next-tab-ite[m] next-value no-apply no-assign no-bind-where no-box no-column-scroll[ing] no-convert no-current-value
+syn keyword	ProgressOperator	no-debug no-drag no-echo no-index-hint no-join-by-sqldb no-lookahead no-row-markers no-scrolling no-separate-connection no-separators no-und[erline] no-word-wrap
+syn keyword	ProgressOperator	none num-but[tons] num-col[umns] num-copies num-formats num-items num-iterations num-lines num-locked-colum[ns] num-messages num-results num-selected num-selected-rows
+syn keyword	ProgressOperator	num-selected-widgets num-tabs num-to-retain numeric numeric-f[ormat] octet_length ok ok-cancel on-frame[-border] ordered-join ordinal orientation os-getenv outer
+syn keyword	ProgressOperator	outer-join override owner page-size page-wid[th] paged parent partial-key pascal pathname pfc[olor] pinnable pixels-per-colum[n] pixels-per-row popup-m[enu] popup-o[nly]
+syn keyword	ProgressOperator	position precision presel[ect] prev prev-col[umn] prev-sibling prev-tab-i[tem] primary printer-control-handle printer-setup private-d[ata] profiler Progress-s[ource]
+syn keyword	ProgressOperator	publish put-double put-float put-long put-short put-string put-unsigned-short query-off-end question radio-buttons radio-set random raw raw-transfer read-file read-only
+syn keyword	ProgressOperator	real recursive refresh refreshable replace replace-selection-text replication-create replication-delete replication-write request resiza[ble] resize retry-cancel
+syn keyword	ProgressOperator	return-ins[erted] return-to-start-di[r] reverse-from right right-align[ed] right-trim round row row-ma[rkers] row-of rowid rule rule-row rule-y save-as save-file
+syn keyword	ProgressOperator	screen-val[ue] scroll-bars scroll-delta scroll-horiz-value scroll-offset scroll-to-current-row scroll-to-i[tem] scroll-to-selected-row scroll-vert-value scrollable
+syn keyword	ProgressOperator	scrollbar-horizo[ntal] scrollbar-vertic[al] scrolled-row-positio[n] scrolling se-check-pools se-enable-of[f] se-enable-on se-num-pools se-use-messa[ge] section select-focused-row
+syn keyword	ProgressOperator	select-next-row select-prev-row select-repositioned-row select-row selectable selected selected-items selection-end selection-list selection-start selection-text
+syn keyword	ProgressOperator	send sensitive separate-connection separators set-blue[-value] set-break set-cell-focus set-contents set-dynamic set-green[-value] set-leakpoint set-pointer-valu[e]
+syn keyword	ProgressOperator	s[et-property] set-red[-value] set-repositioned-row set-selection set-size set-wait[-state] side-lab side-lab[e] side-lab[el] side-label-handl[e] side-lab[els] silent
+syn keyword	ProgressOperator	simple single size size-c[hars] size-p[ixels] slider smallint sort source source-procedure sql sqrt start status-area status-area-font status-bar stdcall stenciled stop stoppe[d]
+syn keyword	ProgressOperator	stored-proc[edure] string sub-ave[rage] sub-count sub-max[imum] sub-me[nu] sub-menu-help sub-min[imum] sub-total subscribe subst[itute] substr[ing] subtype sum super suppress-warning[s]
+syn keyword	ProgressOperator	system-alert-box[es] system-help tab-position tabbable target target-procedure temp-dir[ectory] temp-table terminate text-selected three-d through thru tic-marks time-source title-bgc[olor]
+syn keyword	ProgressOperator	title-dc[olor] title-fgc[olor] title-fo[nt] to-rowid toggle-box tool-bar top topic total trailing trunc[ate] type unbuff[ered] unique-id unload unsubscribe upper use use-dic[t-exps]
+syn keyword	ProgressOperator	use-filename use-text v6display valid-event valid-handle validate validate-condition validate-message var[iable] vert[ical] virtual-height virtual-height-c[hars]
+syn keyword	ProgressOperator	virtual-height-pixel[s] virtual-width virtual-width-ch[ars] virtual-width-pi[xels] visible wait warning weekday widget widget-e[nter] widget-h[andle] widget-l[eave]
+syn keyword	ProgressOperator	widget-pool width width[-chars] width-p[ixels] window-name window-sta[te] window-sys[tem] word-wrap x-of y-of year yes-no yes-no-cancel _dcm
+
+syn keyword	ProgressType		char[acter] int[eger] format
+syn keyword	ProgressType		var[iable] log[ical] da[te]
 
 syn sync lines=800
 
@@ -198,34 +198,34 @@ if version >= 508 || !exists("did_progress_syntax_inits")
   endif
 
   " The default methods for highlighting. Can be overridden later.
-  HiLink ProgressByte				Number
-  HiLink ProgressCase				Repeat
-  HiLink ProgressComment			Comment
+  HiLink ProgressByte			Number
+  HiLink ProgressCase			Repeat
+  HiLink ProgressComment		Comment
   HiLink ProgressConditional		Conditional
-  HiLink ProgressDebug				Debug
-  HiLink ProgressDo					Repeat
-  HiLink ProgressEndError			Error
-  HiLink ProgressFor				Repeat
-  HiLink ProgressFunction			Procedure
-  HiLink ProgressIdentifier			Identifier
-  HiLink ProgressInclude			Include
+  HiLink ProgressDebug			Debug
+  HiLink ProgressDo			Repeat
+  HiLink ProgressEndError		Error
+  HiLink ProgressFor			Repeat
+  HiLink ProgressFunction		Procedure
+  HiLink ProgressIdentifier		Identifier
+  HiLink ProgressInclude		Include
   HiLink ProgressMatrixDelimiter	Identifier
-  HiLink ProgressNumber				Number
-  HiLink ProgressOperator			Operator
-  HiLink ProgressPreProc			PreProc
-  HiLink ProgressProcedure			Procedure
-  HiLink ProgressQuote				Delimiter
-  HiLink ProgressRepeat				Repeat
-  HiLink ProgressReserved			Statement
-  HiLink ProgressSpaceError			Error
-  HiLink ProgressString				String
-  HiLink ProgressTodo				Todo
-  HiLink ProgressType				Statement
-  HiLink ProgressShowTab			Error
+  HiLink ProgressNumber			Number
+  HiLink ProgressOperator		Operator
+  HiLink ProgressPreProc		PreProc
+  HiLink ProgressProcedure		Procedure
+  HiLink ProgressQuote			Delimiter
+  HiLink ProgressRepeat			Repeat
+  HiLink ProgressReserved		Statement
+  HiLink ProgressSpaceError		Error
+  HiLink ProgressString			String
+  HiLink ProgressTodo			Todo
+  HiLink ProgressType			Statement
+  HiLink ProgressShowTab		Error
 
   delcommand HiLink
 endif
 
 let b:current_syntax = "progress"
 
-" vim: ts=4 sw=2
+" vim: ts=8 sw=8
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim
index 163399808bd512ed90c0c9f670d2464d35721729..5aa19e295bbd4c136fa42825fa633a289e6277c5 100644
--- a/runtime/syntax/rhelp.vim
+++ b/runtime/syntax/rhelp.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    R Help File
 " Maintainer:  Johannes Ranke <jranke@uni-bremen.de>
-" Last Change: 2006 Apr 05
-" Version:     0.5
+" Last Change: 2006 Apr 12
+" Version:     0.6
 " Remarks:     - Now includes R syntax highlighting in the appropriate
 "                sections if an r.vim file is in the same directory or in the
 "                default debian location.
@@ -32,16 +32,7 @@ syn region rhelpIdentifier matchgroup=rhelpSection	start="\\item{" end="}" conta
 syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end=/}/ contained
 
 " Highlighting of R code using an existing r.vim syntax file if available {{{1
-let s:syntaxdir = expand("<sfile>:p:h") "look in the directory of this file
-let s:rsyntax = s:syntaxdir . "/r.vim"
-if filereadable(s:rsyntax)  
-  syn include @R <sfile>:p:h/r.vim
-elseif filereadable('/usr/share/vim/vimcurrent/syntax/r.vim')  "and debian location
-  syn include @R /usr/share/vim/vimcurrent/syntax/r.vim
-else 
-  syn match rhelpRComment /\#.*/				"if no r.vim is found, do comments
-  syn cluster R contains=rhelpRComment 
-endif
+syn include @R syntax/r.vim
 syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpSection
 syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpIdentifier
 syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end=/}/ contains=@R
diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index 8e20b9881018bcc19ae08dd4ae7c0495f75361a7..b1aa1012d83a23269ba246548e88058b85cc781e 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Apr 06, 2006
-" Version:		82
+" Last Change:		Apr 12, 2006
+" Version:		83
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Using the following VIM variables: {{{1
@@ -254,7 +254,7 @@ syn match   shSpecial	"\\[\\\"\'`$()#]"
 " Comments: {{{1
 "==========
 syn cluster    shCommentGroup	contains=shTodo,@Spell
-syn keyword    shTodo	contained	TODO
+syn keyword    shTodo	contained	COMBAK FIXME TODO XXX
 syn match      shComment	"#.*$" contains=@shCommentGroup
 
 " File Redirection Highlighted As Operators: {{{1
diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim
index 092faa92d6bcc8db78714d447cae6ad3e2ac8860..5a5e6a2a45ba001ef9d715db6cfa9ae3d279b216 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:	Mar 06, 2006
-" Version:	33
+" Last Change:	Apr 12, 2006
+" Version:	34
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Notes: {{{1
@@ -371,7 +371,7 @@ syn match texSpecialChar	"\^\^[0-9a-f]\{2}\|\^\^\S"
 "    Documented TeX Format:  ^^A...	-and-	leading %s (only)
 syn cluster texCommentGroup	contains=texTodo,@Spell
 syn case ignore
-syn keyword texTodo		contained		combak	fixme	todo
+syn keyword texTodo		contained		combak	fixme	todo	xxx
 syn case match
 if b:extfname == "dtx"
   syn match texComment		"\^\^A.*$"	contains=@texCommentGroup
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 4d0228e8dec965eb4e9c9c9863edd5faa0cecf12..b4cbd557883227a9111fce707163c5c10cd5615b 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.0 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	April 04, 2006
-" Version:	7.0-38
+" Last Change:	Apr 12, 2006
+" Version:	7.0-41
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -12,11 +12,11 @@ endif
 
 " vimTodo: contains common special-notices for comments {{{2
 " Use the vimCommentGroup cluster to add your own.
-syn keyword vimTodo contained	COMBAK	NOT	RELEASED	TODO	WIP
+syn keyword vimTodo contained	COMBAK	FIXME	TODO	XXX
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] caddb[uffer] cad[dexpr] caddf[ile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cgetb[uffer] cgete[xpr] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] earlier echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] Explore exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] Hexplore hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] laddb[uffer] lad[dexpr] laddf[ile] lan[guage] la[st] later lb[uffer] lc[d] lch[dir] lcl[ose] le[ft] lefta[bove] lex[pr] lf[ile] lfir[st] lgetb[uffer] lgete[xpr] lg[etfile] lgr[ep] lgrepa[dd] lh[elpgrep] l[ist] ll lla[st] lli[st] lmak[e] lm[ap] lmapc[lear] lnew[er] lne[xt] lN[ext] lnf[ile] lNf[ile] ln[oremap] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lpf[ile] lp[revious] lr[ewind] ls lt[ag] lu[nmap] lv[imgrep] lvimgrepa[dd] lw[indow] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey NetrwSettings new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] Sexplore sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sm[ap] smapc[lear] sme smenu sn[ext] sN[ext] sni[ff] sno[magic] snor[emap] snoreme snoremenu sor[t] so[urce] spelld[ump] spe[llgood] spelli[nfo] spellr[epall] spellu[ndo] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] startg[replace] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sunm[ap] sus[pend] sv[iew] syncbind t tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabl[ast] tabmove tabnew tabn[ext] tabN[ext] tabo[nly] tabp[revious] tabr[ewind] tabs ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] Vexplore v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] xm[ap] xmapc[lear] xme xmenu XMLent XMLns xn[oremap] xnoreme xnoremenu xu[nmap] y[ank] 
+syn keyword vimCommand contained	ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] caddb[uffer] cad[dexpr] caddf[ile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cgetb[uffer] cgete[xpr] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] earlier echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] Explore exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] Hexplore hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] laddb[uffer] lad[dexpr] laddf[ile] lan[guage] la[st] later lb[uffer] lc[d] lch[dir] lcl[ose] le[ft] lefta[bove] lex[pr] lf[ile] lfir[st] lgetb[uffer] lgete[xpr] lg[etfile] lgr[ep] lgrepa[dd] lh[elpgrep] l[ist] ll lla[st] lli[st] lmak[e] lm[ap] lmapc[lear] lnew[er] lne[xt] lN[ext] lnf[ile] lNf[ile] ln[oremap] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lpf[ile] lp[revious] lr[ewind] ls lt[ag] lu[nmap] lv[imgrep] lvimgrepa[dd] lw[indow] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey NetrwSettings new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] Sexplore sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sm[ap] smapc[lear] sme smenu sn[ext] sN[ext] sni[ff] sno[magic] snor[emap] snoreme snoremenu sor[t] so[urce] spelld[ump] spe[llgood] spelli[nfo] spellr[epall] spellu[ndo] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] startg[replace] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sunm[ap] sus[pend] sv[iew] syncbind t tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabl[ast] tabmove tabnew tabn[ext] tabN[ext] tabo[nly] tabp[revious] tabr[ewind] tabs ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] Vexplore vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] xm[ap] xmapc[lear] xme xmenu XMLent XMLns xn[oremap] xnoreme xnoremenu xu[nmap] y[ank] 
 syn match   vimCommand contained	"\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -44,7 +44,7 @@ syn keyword vimErrSetting contained	hardtabs ht w1200 w300 w9600
 
 " AutoCmd Events {{{2
 syn case ignore
-syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI E135 E143 E200 E201 E203 E204 EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter InsertChange InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave 
+syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter InsertChange InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave 
 
 " Highlight commonly used Groupnames {{{2
 syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo 
@@ -128,9 +128,8 @@ syn keyword vimPattern   contained	start	skip	end
 syn cluster vimOperGroup	contains=vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
 syn match  vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
 syn match  vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
-syn region vimOperParen 	matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
+syn region vimOperParen 	oneline matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
 syn region vimOperParen	matchgroup=vimSep  start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
-"syn match  vimOperOk	"\<[aiAIrR][()]" contained
 if !exists("g:vimsyntax_noerror")
  syn match  vimOperError	")"
 endif
@@ -473,10 +472,12 @@ syn match  vimContinue	"^\s*\\"
 syn region vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
 syn match  vimCommentTitleLeader	'"\s\+'ms=s+1	contained
 
-" Searches: {{{2
-" =========
+" Searches And Globals: {{{2
+" ====================
 syn match vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
 syn match vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
+syn region vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
+syn region vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
 
 " Scripts  : perl,ruby : Benoit Cerrina {{{2
 " =======    python,tcl: Johannes Zellner
diff --git a/runtime/syntax/xmath.vim b/runtime/syntax/xmath.vim
index a44bac4fd27316187217bb082b399d1466742b59..e9c37621653b2186cf473dd1f0bd9d9a110f934c 100644
--- a/runtime/syntax/xmath.vim
+++ b/runtime/syntax/xmath.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	xmath (a simulation tool)
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Sep 06, 2005
-" Version:	4
+" Last Change:	Apr 12, 2006
+" Version:	5
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 
 " For version 5.x: Clear all syntax items
@@ -184,7 +184,7 @@ syn match   xmathNumber	"-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
 " Comments:
 " xmath supports #...  (like Unix shells)
 "       and      #{ ... }# comment blocks
-syn keyword xmathTodo contained	TODO Todo DEBUG
+syn keyword xmathTodo contained	COMBAK	DEBUG	FIXME	Todo	TODO	XXX
 syn match   xmathComment	"#.*$"		contains=xmathString,xmathTodo,@Spell
 syn region  xmathCommentBlock	start="#{" end="}#"	contains=xmathString,xmathTodo
 
diff --git a/src/Makefile b/src/Makefile
index 625271fec9d38c2a65666ca933e92b7368710859..0a8bbbe09106f37d6582a471043018069447bf91 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1765,8 +1765,8 @@ installruntime: installrtbase installmacros installtutor installspell
 # install the help files; first adjust the contents for the final location
 installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \
 		$(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) \
-		$(DEST_FTP) $(DEST_AUTO) $(DEST_PLUG) $(DEST_TUTOR) \
-		$(DEST_SPELL) $(DEST_COMP)
+		$(DEST_FTP) $(DEST_AUTO) $(DEST_AUTO)/xml $(DEST_PLUG) \
+		$(DEST_TUTOR) $(DEST_SPELL) $(DEST_COMP)
 	-$(SHELL) ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
 	@echo generating help tags
 # Generate the help tags with ":helptags" to handle all languages.
@@ -1831,6 +1831,8 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(DEST_RT) \
 # install the standard autoload files
 	cd $(AUTOSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_AUTO)
 	cd $(DEST_AUTO); chmod $(HELPMOD) *.vim README.txt
+	cd $(AUTOSOURCE)/xml; $(INSTALL_DATA) *.vim $(DEST_AUTO)/xml
+	cd $(DEST_AUTO)/xml; chmod $(HELPMOD) *.vim
 # install the standard plugin files
 	cd $(PLUGSOURCE); $(INSTALL_DATA) *.vim README.txt $(DEST_PLUG)
 	cd $(DEST_PLUG); chmod $(HELPMOD) *.vim README.txt
@@ -1989,7 +1991,7 @@ $(DESTDIR)$(exec_prefix) $(DEST_BIN) \
 		$(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND) $(DEST_FTP) \
 		$(DEST_LANG) $(DEST_KMAP) $(DEST_COMP) \
 		$(DEST_MACRO) $(DEST_TOOLS) $(DEST_TUTOR) $(DEST_SPELL) \
-		$(DEST_AUTO) $(DEST_PLUG):
+		$(DEST_AUTO) $(DEST_AUTO)/xml $(DEST_PLUG):
 	-$(SHELL) ./mkinstalldirs $@
 	-chmod $(DIRMOD) $@
 
@@ -2137,9 +2139,9 @@ uninstall_runtime:
 	-rm -f $(DEST_PRINT)/*.ps
 	-rmdir $(DEST_HELP) $(DEST_PRINT) $(DEST_COL) $(DEST_SYN) $(DEST_IND)
 	-rm -rf $(DEST_FTP)/*.vim $(DEST_FTP)/README.txt
-	-rm -f $(DEST_AUTO)/*.vim $(DEST_AUTO)/README.txt
+	-rm -f $(DEST_AUTO)/*.vim $(DEST_AUTO)/README.txt $(DEST_AUTO)/xml/*.vim
 	-rm -f $(DEST_PLUG)/*.vim $(DEST_PLUG)/README.txt
-	-rmdir $(DEST_FTP) $(DEST_AUTO) $(DEST_PLUG) $(DEST_RT)
+	-rmdir $(DEST_FTP) $(DEST_AUTO)/xml $(DEST_AUTO) $(DEST_PLUG) $(DEST_RT)
 #	This will fail when other Vim versions are installed, no worries.
 	-rmdir $(DEST_VIM)
 
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index a88e798cdcdb54055ffd7ace135c98ac8cfff9db..8323ca83ee938b25ab424dda3e58286e2ed21d7d 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -9643,6 +9643,8 @@ makeopens(fd, dirnow)
     win_T	*wp;
     char_u	*sname;
     win_T	*edited_win = NULL;
+    tabpage_T	*old_curtab = curtab;
+    int		tabnr;
 
     if (ssop_flags & SSOP_BUFFERS)
 	only_save_windows = FALSE;		/* Save ALL buffers */
@@ -9748,114 +9750,144 @@ makeopens(fd, dirnow)
 #endif
 
     /*
-     * Before creating the window layout, try loading one file.  If this is
-     * aborted we don't end up with a number of useless windows.
-     * This may have side effects! (e.g., compressed or network file).
+     * May repeat putting Windows for each tab, when "tabpages" is in
+     * 'sessionoptions'.
      */
-    for (wp = firstwin; wp != NULL; wp = wp->w_next)
+    for (tabnr = 1; ; ++tabnr)
     {
-	if (ses_do_win(wp)
-		&& wp->w_buffer->b_ffname != NULL
-		&& !wp->w_buffer->b_help
-#ifdef FEAT_QUICKFIX
-		&& !bt_nofile(wp->w_buffer)
-#endif
-		)
+	if ((ssop_flags & SSOP_TABPAGES))
 	{
-	    if (fputs("edit ", fd) < 0
-		    || ses_fname(fd, wp->w_buffer, &ssop_flags) == FAIL)
+	    goto_tabpage(tabnr);
+	    if (tabnr > 1 && put_line(fd, "tabnew") == FAIL)
 		return FAIL;
-	    if (!wp->w_arg_idx_invalid)
-		edited_win = wp;
-	    break;
 	}
-    }
 
-    /*
-     * Save current window layout.
-     */
-    if (put_line(fd, "set splitbelow splitright") == FAIL)
-	return FAIL;
-    if (ses_win_rec(fd, topframe) == FAIL)
-	return FAIL;
-    if (!p_sb && put_line(fd, "set nosplitbelow") == FAIL)
-	return FAIL;
-    if (!p_spr && put_line(fd, "set nosplitright") == FAIL)
-	return FAIL;
+	/*
+	 * Before creating the window layout, try loading one file.  If this
+	 * is aborted we don't end up with a number of useless windows.
+	 * This may have side effects! (e.g., compressed or network file).
+	 */
+	for (wp = firstwin; wp != NULL; wp = wp->w_next)
+	{
+	    if (ses_do_win(wp)
+		    && wp->w_buffer->b_ffname != NULL
+		    && !wp->w_buffer->b_help
+#ifdef FEAT_QUICKFIX
+		    && !bt_nofile(wp->w_buffer)
+#endif
+		    )
+	    {
+		if (fputs("edit ", fd) < 0
+			|| ses_fname(fd, wp->w_buffer, &ssop_flags) == FAIL)
+		    return FAIL;
+		if (!wp->w_arg_idx_invalid)
+		    edited_win = wp;
+		break;
+	    }
+	}
 
-    /*
-     * Check if window sizes can be restored (no windows omitted).
-     * Remember the window number of the current window after restoring.
-     */
-    nr = 0;
-    for (wp = firstwin; wp != NULL; wp = W_NEXT(wp))
-    {
-	if (ses_do_win(wp))
-	    ++nr;
-	else
-	    restore_size = FALSE;
-	if (curwin == wp)
-	    cnr = nr;
-    }
+	/*
+	 * Save current window layout.
+	 */
+	if (put_line(fd, "set splitbelow splitright") == FAIL)
+	    return FAIL;
+	if (ses_win_rec(fd, topframe) == FAIL)
+	    return FAIL;
+	if (!p_sb && put_line(fd, "set nosplitbelow") == FAIL)
+	    return FAIL;
+	if (!p_spr && put_line(fd, "set nosplitright") == FAIL)
+	    return FAIL;
 
-    /* Go to the first window. */
-    if (put_line(fd, "wincmd t") == FAIL)
-	return FAIL;
+	/*
+	 * Check if window sizes can be restored (no windows omitted).
+	 * Remember the window number of the current window after restoring.
+	 */
+	nr = 0;
+	for (wp = firstwin; wp != NULL; wp = W_NEXT(wp))
+	{
+	    if (ses_do_win(wp))
+		++nr;
+	    else
+		restore_size = FALSE;
+	    if (curwin == wp)
+		cnr = nr;
+	}
 
-    /*
-     * If more than one window, see if sizes can be restored.
-     * First set 'winheight' and 'winwidth' to 1 to avoid the windows being
-     * resized when moving between windows.
-     * Do this before restoring the view, so that the topline and the cursor
-     * can be set.  This is done again below.
-     */
-    if (put_line(fd, "set winheight=1 winwidth=1") == FAIL)
-	return FAIL;
-    if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL)
-	return FAIL;
+	/* Go to the first window. */
+	if (put_line(fd, "wincmd t") == FAIL)
+	    return FAIL;
 
-    /*
-     * Restore the view of the window (options, file, cursor, etc.).
-     */
-    for (wp = firstwin; wp != NULL; wp = wp->w_next)
-    {
-	if (!ses_do_win(wp))
-	    continue;
-	if (put_view(fd, wp, wp != edited_win, &ssop_flags) == FAIL)
+	/*
+	 * If more than one window, see if sizes can be restored.
+	 * First set 'winheight' and 'winwidth' to 1 to avoid the windows being
+	 * resized when moving between windows.
+	 * Do this before restoring the view, so that the topline and the
+	 * cursor can be set.  This is done again below.
+	 */
+	if (put_line(fd, "set winheight=1 winwidth=1") == FAIL)
 	    return FAIL;
-	if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
+	if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL)
 	    return FAIL;
-    }
 
-    /*
-     * Restore cursor to the current window if it's not the first one.
-     */
-    if (cnr > 1 && (fprintf(fd, "%dwincmd w", cnr) < 0 || put_eol(fd) == FAIL))
-	return FAIL;
+	/*
+	 * Restore the view of the window (options, file, cursor, etc.).
+	 */
+	for (wp = firstwin; wp != NULL; wp = wp->w_next)
+	{
+	    if (!ses_do_win(wp))
+		continue;
+	    if (put_view(fd, wp, wp != edited_win, &ssop_flags) == FAIL)
+		return FAIL;
+	    if (nr > 1 && put_line(fd, "wincmd w") == FAIL)
+		return FAIL;
+	}
 
-    /*
-     * Wipe out an empty unnamed buffer we started in.
-     */
-    if (put_line(fd, "if exists('s:wipebuf')") == FAIL)
-	return FAIL;
-    if (put_line(fd, "  exe 'bwipe ' . s:wipebuf") == FAIL)
-	return FAIL;
-    if (put_line(fd, "endif") == FAIL)
-	return FAIL;
-    if (put_line(fd, "unlet! s:wipebuf") == FAIL)
-	return FAIL;
+	/*
+	 * Restore cursor to the current window if it's not the first one.
+	 */
+	if (cnr > 1 && (fprintf(fd, "%dwincmd w", cnr) < 0
+						      || put_eol(fd) == FAIL))
+	    return FAIL;
 
-    /*
-     * Restore window sizes again after jumping around in windows, because the
-     * current window has a minimum size while others may not.
-     */
-    if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL)
-	return FAIL;
+	/*
+	 * Wipe out an empty unnamed buffer we started in.
+	 */
+	if (put_line(fd, "if exists('s:wipebuf')") == FAIL)
+	    return FAIL;
+	if (put_line(fd, "  exe 'bwipe ' . s:wipebuf") == FAIL)
+	    return FAIL;
+	if (put_line(fd, "endif") == FAIL)
+	    return FAIL;
+	if (put_line(fd, "unlet! s:wipebuf") == FAIL)
+	    return FAIL;
 
-    /* Re-apply 'winheight', 'winwidth' and 'shortmess'. */
-    if (fprintf(fd, "set winheight=%ld winwidth=%ld shortmess=%s",
+	/*
+	 * Restore window sizes again after jumping around in windows, because
+	 * the current window has a minimum size while others may not.
+	 */
+	if (nr > 1 && ses_winsizes(fd, restore_size) == FAIL)
+	    return FAIL;
+
+	/* Re-apply 'winheight', 'winwidth' and 'shortmess'. */
+	if (fprintf(fd, "set winheight=%ld winwidth=%ld shortmess=%s",
 			       p_wh, p_wiw, p_shm) < 0 || put_eol(fd) == FAIL)
-	return FAIL;
+	    return FAIL;
+
+	/* Don't continue in another tab page when doing only the current one
+	 * or when at the last tab page. */
+	if (!(ssop_flags & SSOP_TABPAGES) || curtab->tp_next == NULL)
+	    break;
+    }
+
+    if (ssop_flags & SSOP_TABPAGES)
+    {
+	if (valid_tabpage(old_curtab))
+	    goto_tabpage_tp(old_curtab);
+	if (fprintf(fd, "tabnext %d", tabpage_index(curtab)) < 0
+		|| put_eol(fd) == FAIL)
+	    return FAIL;
+    }
+
 
     /*
      * Lastly, execute the x.vim file if it exists.
diff --git a/src/gui.c b/src/gui.c
index 3d677dba5eee563fd05804c1249d88be4e67fb94..5ede4c1bea064bc0203e0e9177864f1eaa97c264 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -548,6 +548,19 @@ gui_init()
 #if defined(FEAT_GUI_GTK)
 	/* Give GTK+ a chance to put all widget's into place. */
 	gui_mch_update();
+
+# ifdef FEAT_MENU
+	/* If there is no 'm' in 'guioptions' we need to remove the menu now.
+	 * It was still there to make F10 work. */
+	if (vim_strchr(p_go, GO_MENUS) == NULL)
+	{
+	    --gui.starting;
+	    gui_mch_enable_menu(FALSE);
+	    ++gui.starting;
+	    gui_mch_update();
+	}
+# endif
+
 	/* Now make sure the shell fits on the screen. */
 	gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH);
 #endif
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index adb603a6c90ca9eb9bf0873233a7d6e4e24faf80..b44100e5bbb9c88ed19de92ab3d2d3edbfb06b89 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3562,8 +3562,9 @@ gui_mch_init(void)
     else
 # endif	/* FEAT_GUI_GNOME */
     {
-	if (vim_strchr(p_go, GO_MENUS) != NULL)
-	    gtk_widget_show(gui.menubar);
+	/* Always show the menubar, otherwise <F10> doesn't work.  It may be
+	 * disabled in gui_init() later. */
+	gtk_widget_show(gui.menubar);
 	gtk_box_pack_start(GTK_BOX(vbox), gui.menubar, FALSE, FALSE, 0);
     }
 #endif	/* FEAT_MENU */
@@ -4366,7 +4367,8 @@ gui_mch_enable_menu(int showit)
 # endif
 	widget = gui.menubar;
 
-    if (!showit != !GTK_WIDGET_VISIBLE(widget))
+    /* Do not disable the menu while starting up, otherwise F10 doesn't work. */
+    if (!showit != !GTK_WIDGET_VISIBLE(widget) && !gui.starting)
     {
 	if (showit)
 	    gtk_widget_show(widget);
diff --git a/src/gui_motif.c b/src/gui_motif.c
index 4caecc308d54b478f2c2d5f5a3880fb5750f3d57..7eb57589c44cd96a9d36dab39bf281e5ba26423b 100644
--- a/src/gui_motif.c
+++ b/src/gui_motif.c
@@ -370,7 +370,7 @@ label_expose(_w, _event, _region)
 gui_x11_create_widgets()
 {
 #ifdef FEAT_GUI_TABLINE
-    Widget	button;
+    Widget	button, scroller;
     Arg		args[10];
     int		n;
     XmString	xms;
@@ -491,6 +491,20 @@ gui_x11_create_widgets()
     XtAddEventHandler(tabLine, ButtonPressMask, False,
 			(XtEventHandler)tabline_menu_cb, NULL);
 
+    /*
+     * Set the size of the minor next/prev scrollers to zero, so
+     * that they are not displayed. Due to a bug in OpenMotif 2.3,
+     * even if these children widget are unmanaged, they are again
+     * managed by the Notebook widget and the notebook widget geometry
+     * is adjusted to account for the minor scroller widgets.
+     */
+    scroller = XtNameToWidget(tabLine, "MinorTabScrollerNext");
+    XtVaSetValues(scroller, XmNwidth, 0, XmNresizable, False,
+		  XmNtraversalOn, False, NULL);
+    scroller = XtNameToWidget(tabLine, "MinorTabScrollerPrevious");
+    XtVaSetValues(scroller, XmNwidth, 0, XmNresizable, False,
+		  XmNtraversalOn, False, NULL);
+
     /* Create the tabline popup menu */
     tabLine_menu = XmCreatePopupMenu(tabLine, "tabline popup", NULL, 0);
 
diff --git a/src/main.aap b/src/main.aap
index 3ce0890e11e17a8b84effe9347076eee42233590..3700edd98d9291a371dbed5e9e678b10165e4c8c 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -665,7 +665,8 @@ DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR)
 
 # These are directories, create them when needed.
 :attr {directory = $DIRMOD} $DEST_BIN $DEST_VIM $DEST_RT $DEST_HELP $DEST_COL
-                $DEST_SYN $DEST_IND $DEST_AUTO $DEST_PLUG $DEST_FTP $DEST_LANG
+                $DEST_SYN $DEST_IND $DEST_AUTO $DEST_AUTO/xml $DEST_PLUG
+                $DEST_FTP $DEST_LANG
                 $DEST_COMP $DEST_KMAP $DEST_MACRO $DEST_TOOLS $DEST_TUTOR
                 $DEST_SCRIPT $DEST_PRINT $DEST_MAN $DEST_SPELL
                 $DEST_MAN_FR $DEST_MAN_FR_I $DEST_MAN_FR_U $DEST_MAN_IT
@@ -722,8 +723,8 @@ installruntime {virtual}: installrtbase installmacros installtutor installspell
 # install the help files; first adjust the contents for the location
 installrtbase {virtual}{force}: $HELPSOURCE/vim.1 $DEST_VIM
                 $DEST_RT $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND
-                $DEST_FTP $DEST_AUTO $DEST_PLUG $DEST_TUTOR $DEST_COMP
-                $DEST_SPELL $DEST_PRINT
+                $DEST_FTP $DEST_AUTO $DEST_AUTO/xml $DEST_PLUG $DEST_TUTOR
+                $DEST_COMP $DEST_SPELL $DEST_PRINT
         :chmod 755 installman.sh
         :sys ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
 
@@ -791,6 +792,8 @@ installrtbase {virtual}{force}: $HELPSOURCE/vim.1 $DEST_VIM
 # install the standard autoload files
         :copy $AUTOSOURCE/*.vim $AUTOSOURCE/README.txt $DEST_AUTO
         :chmod $HELPMOD $DEST_AUTO/*.vim $DEST_AUTO/README.txt
+        :copy $AUTOSOURCE/xml/*.vim $DEST_AUTO/xml
+        :chmod $HELPMOD $DEST_AUTO/xml/*.vim
 # install the standard plugin files
         :copy $PLUGSOURCE/*.vim $PLUGSOURCE/README.txt $DEST_PLUG
         :chmod $HELPMOD $DEST_PLUG/*.vim $DEST_PLUG/README.txt
@@ -1122,9 +1125,9 @@ uninstall_runtime {virtual}{force}:
     :del {force}{recursive} $DEST_COMP
     :deldir {force} $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND
     :del {force}{recursive} $DEST_FTP/*.vim $DEST_FTP/README.txt
-    :del {force} $DEST_AUTO/*.vim $DEST_AUTO/README.txt
+    :del {force} $DEST_AUTO/*.vim $DEST_AUTO/README.txt $DEST_AUTO/xml/*.vim
     :del {force} $DEST_PLUG/*.vim $DEST_PLUG/README.txt
-    :deldir {force} $DEST_FTP $DEST_AUTO $DEST_PLUG $DEST_PRINT $DEST_RT
+    :deldir {force} $DEST_FTP $DEST_AUTO/xml $DEST_AUTO $DEST_PLUG $DEST_PRINT $DEST_RT
 #       This will fail when other Vim versions are installed, no worries.
     @try:
         :deldir $DEST_VIM
diff --git a/src/misc1.c b/src/misc1.c
index 22dbfc872f8092912f1b9327623bc9bf18711258..c8d0000ab95c4f1f6be873db18ceb20c5578eec8 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -5456,6 +5456,8 @@ cin_isbreak(p)
  *	anotherBaseClass	<-- here (should probably lineup ??)
  * MyClass::MyClass(...) :
  *	baseClass(...)		<-- here (constructor-initialization)
+ *
+ * This is a lot of guessing.  Watch out for "cond ? func() : foo".
  */
     static int
 cin_is_cpp_baseclass(line, col)
@@ -5523,6 +5525,11 @@ cin_is_cpp_baseclass(line, col)
 		class_or_struct = FALSE;
 		lookfor_ctor_init = TRUE;
 	    }
+	    else if (s[0] == '?')
+	    {
+		/* Avoid seeing '() :' after '?' as constructor init. */
+		return FALSE;
+	    }
 	    else if (!vim_isIDc(s[0]))
 	    {
 		/* if it is not an identifier, we are wrong */
@@ -5543,6 +5550,32 @@ cin_is_cpp_baseclass(line, col)
 	}
     }
 
+    if (cpp_base_class && curwin->w_cursor.lnum > 1)
+    {
+	/* Check that there is no '?' in the previous line to catch:
+	 *	a = cond ?
+	 *	      func() :
+	 *	           asdf;
+	 */
+	s = ml_get(curwin->w_cursor.lnum - 1);
+	if (!cin_ispreproc(s))
+	    while (*s != NUL)
+	    {
+		s = cin_skipcomment(s);
+		if (*s == '?')
+		    /* Disable when finding a '?'... */
+		    cpp_base_class = FALSE;
+		else if (*s == ';' && cin_nocode(s + 1))
+		{
+		    /* ...but re-enable when the line ends in ';'. */
+		    cpp_base_class = TRUE;
+		    break;
+		}
+		if (*s != NUL)
+		    ++s;
+	    }
+    }
+
     return cpp_base_class;
 }
 
@@ -6714,7 +6747,7 @@ get_c_indent()
 
 		/*
 		 * If this is a switch() label, may line up relative to that.
-		 * if this is a C++ scope declaration, do the same.
+		 * If this is a C++ scope declaration, do the same.
 		 */
 		iscase = cin_iscase(l);
 		if (iscase || cin_isscopedecl(l))
@@ -6854,8 +6887,13 @@ get_c_indent()
 		 * Are we at the start of a cpp base class declaration or
 		 * constructor initialization?
 		 */						    /* XXX */
-		if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass
-					     && cin_is_cpp_baseclass(l, &col))
+		n = FALSE;
+		if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0)
+		{
+		    n = cin_is_cpp_baseclass(l, &col);
+		    l = ml_get_curline();
+		}
+		if (n)
 		{
 		    if (lookfor == LOOKFOR_UNTERM)
 		    {
@@ -6885,7 +6923,8 @@ get_c_indent()
 		else if (lookfor == LOOKFOR_CPP_BASECLASS)
 		{
 		    /* only look, whether there is a cpp base class
-		     * declaration or initialization before the opening brace. */
+		     * declaration or initialization before the opening brace.
+		     */
 		    if (cin_isterminated(l, TRUE, FALSE))
 			break;
 		    else
@@ -7326,10 +7365,32 @@ term_again:
 			if (theline[0] == '{')
 			    amount += ind_open_extra;
 			/* See remark above: "Only add ind_open_extra.." */
-			if (*skipwhite(l) == '{')
+			l = skipwhite(l);
+			if (*l == '{')
 			    amount -= ind_open_extra;
 			lookfor = iscase ? LOOKFOR_ANY : LOOKFOR_TERM;
 
+			/*
+			 * When a terminated line starts with "else" skip to
+			 * the matching "if":
+			 *       else 3;
+			 *           indent this;
+			 * Need to use the scope of this "else".  XXX
+			 * If whilelevel != 0 continue looking for a "do {".
+			 */
+			if (lookfor == LOOKFOR_TERM
+				&& *l != '}'
+				&& cin_iselse(l)
+				&& whilelevel == 0)
+			{
+			    if ((trypos = find_start_brace(ind_maxcomment))
+								       == NULL
+				    || find_match(LOOKFOR_IF, trypos->lnum,
+					ind_maxparen, ind_maxcomment) == FAIL)
+				break;
+			    continue;
+			}
+
 			/*
 			 * If we're at the end of a block, skip to the start of
 			 * that block.
@@ -7418,11 +7479,16 @@ term_again:
 		}
 
 		/*
-		 * Are we at the start of a cpp base class declaration or constructor
-		 * initialization?
+		 * Are we at the start of a cpp base class declaration or
+		 * constructor initialization?
 		 */						    /* XXX */
-		if (ind_cpp_baseclass != 0 && theline[0] != '{'
-					     && cin_is_cpp_baseclass(l, &col))
+		n = FALSE;
+		if (ind_cpp_baseclass != 0 && theline[0] != '{')
+		{
+		    n = cin_is_cpp_baseclass(l, &col);
+		    l = ml_get_curline();
+		}
+		if (n)
 		{
 		    if (col == 0)
 		    {
diff --git a/src/option.c b/src/option.c
index d24b2cd9acd50aee92e57579fd662b55941e733a..36cfe035e73f6b11e7fdc56d3bb501597ca2b7cd 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1258,7 +1258,7 @@ static struct vimoption
 			    (char_u *)NULL, PV_NONE,
 #endif
 			    {(char_u *)TRUE, (char_u *)0L}},
-    {"guitablabel",  "gtl", P_STRING|P_VI_DEF,
+    {"guitablabel",  "gtl", P_STRING|P_VI_DEF|P_RWIN,
 #if defined(FEAT_GUI_TABLINE)
 			    (char_u *)&p_gtl, PV_NONE,
 			    {(char_u *)"", (char_u *)0L}
@@ -2066,7 +2066,7 @@ static struct vimoption
     {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
 #ifdef FEAT_SESSION
 			    (char_u *)&p_ssop, PV_NONE,
-		 {(char_u *)"blank,buffers,curdir,folds,help,options,winsize",
+	 {(char_u *)"blank,buffers,curdir,folds,help,options,tabpage,winsize",
 							       (char_u *)0L}
 #else
 			    (char_u *)NULL, PV_NONE,
@@ -6069,7 +6069,7 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
 #if defined(FEAT_GUI_TABLINE)
     /* 'guitablabel' */
     else if (varp == &p_gtl)
-	gui_init_which_components(NULL);
+	redraw_tabline = TRUE;
 #endif
 
 #if defined(FEAT_MOUSE_TTY) && (defined(UNIX) || defined(VMS))
diff --git a/src/option.h b/src/option.h
index afa18948382f9fa9d6f2c3e5f24fb7f970528a5d..39c03e181f3efb898211fb7796f50362abb72d12 100644
--- a/src/option.h
+++ b/src/option.h
@@ -663,7 +663,7 @@ EXTERN unsigned	ssop_flags;
 /* Also used for 'viewoptions'! */
 static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
     "localoptions", "options", "help", "blank", "globals", "slash", "unix",
-    "sesdir", "curdir", "folds", "cursor", NULL};
+    "sesdir", "curdir", "folds", "cursor", "tabpages", NULL};
 # endif
 # define SSOP_BUFFERS		0x001
 # define SSOP_WINPOS		0x002
@@ -680,6 +680,7 @@ static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
 # define SSOP_CURDIR		0x1000
 # define SSOP_FOLDS		0x2000
 # define SSOP_CURSOR		0x4000
+# define SSOP_TABPAGES		0x8000
 #endif
 EXTERN char_u	*p_sh;		/* 'shell' */
 EXTERN char_u	*p_shcf;	/* 'shellcmdflag' */
diff --git a/src/po/it.po b/src/po/it.po
index 2299c3a200d13db0d19a1dd01454d536b5383e6c..7e970d4985de354ef0dffafe58178af73eae62a2 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -12,8 +12,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vim 7.0\n"
-"POT-Creation-Date: 2006-03-31 07:25+0200\n"
-"PO-Revision-Date:  2006-04-03 10:05+0200\n"
+"POT-Creation-Date: 2006-04-08 09:01+0200\n"
+"PO-Revision-Date:  2006-04-08 09:01+0200\n"
 "Last-Translator:   Vlad Sandrini   <vlad.gently@gmail.com>\n"
 "Language-Team:     Italian"
 "                   Antonio Colombo <azc100@gmail.com>"
@@ -210,6 +210,9 @@ msgstr "E102: Non riesco a trovare il buffer: \"%s\""
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: Il buffer \"%s\" non è in modalità 'diff'"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: Il buffer è variato inaspettatamente"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: Escape not ammesso nei digrammi"
 
@@ -527,8 +530,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "inputrestore() chiamata più volte di inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: Intervallo non consentito"
+msgid "E786: Range not allowed"
+msgstr "E786: Intervallo non consentito"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: Tipo non valido per len()"
@@ -1395,6 +1398,9 @@ msgstr "E602: :endtry senza :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction non contenuto in una funzione"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Non si può aprire ora un altro buffer"
+
 msgid "tagname"
 msgstr "nome_tag"
 
@@ -4728,6 +4734,22 @@ msgstr "Valore di FLAG non valido in %s linea %d: %s"
 msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG dopo l'uso di flags in %s linea %d: %s"
 
+#, c-format
+msgid ""
+"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definire COMPOUNDFORBIDFLAG dop l'elemento PFX potrebbe dare risultati "
+"errati in %s linea %d"
+
+#, c-format
+msgid ""
+"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definire COMPOUNDPERMITFLAG dop l'elemento PFX potrebbe dare risultati "
+"errati in %s linea %d"
+
 #, c-format
 msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
 msgstr "Valore errato per COMPOUNDWORDMAX in %s linea %d: %s"
@@ -4769,10 +4791,6 @@ msgstr "Y o N deve essere presente in %s linea %d: %s"
 msgid "Broken condition in %s line %d: %s"
 msgstr "Condizione non rispettata in %s linea %d: %s"
 
-#, c-format
-msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-msgstr "Flags di affissi ignorati con PFXPOSTPONE in %s linea %d: %s"
-
 #, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Contatore REP(SAL) necessario in %s linea %d"
@@ -5714,7 +5732,7 @@ msgstr "Apri i(l) file scelto(i) con Vim"
 msgid "Error creating process: Check if gvim is in your path!"
 msgstr ""
 "Errore creando il processo: Controllate che gvim sia incluso nel vostro "
-"cammino (PATH)"
+"percorso (PATH)"
 
 msgid "gvimext.dll error"
 msgstr "errore gvimext.dll"
diff --git a/src/po/pl.UTF-8.po b/src/po/pl.UTF-8.po
index 6b881e495d7f3ce1b5d15b56b31ef0a2a82b063d..64b32036f043c4268628f3d08b42b11cea0a42c0 100644
--- a/src/po/pl.UTF-8.po
+++ b/src/po/pl.UTF-8.po
@@ -1,7 +1,7 @@
 # translation of pl.po to Polish
 # Polish Translation for Vim
 #
-# updated 2005 for vim-7.0
+# updated 2006 for vim-7.0
 #
 # FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
 # Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-01 18:24+0200\n"
-"PO-Revision-Date: 2006-04-01 18:39+0200\n"
+"POT-Creation-Date: 2006-04-12 20:24+0200\n"
+"PO-Revision-Date: 2006-04-12 20:28+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
 "Language-Team: Polish <mikmach@wp.pl>\n"
 "MIME-Version: 1.0\n"
@@ -198,7 +198,8 @@ msgid "E100: No other buffer in diff mode"
 msgstr "E100: Brak innego bufora w trybie różnic"
 
 msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr "E101: Więcej niż jeden bufor w trybie różnicowania, nie wiem którego użyć"
+msgstr ""
+"E101: Więcej niż jeden bufor w trybie różnicowania, nie wiem którego użyć"
 
 #, c-format
 msgid "E102: Can't find buffer \"%s\""
@@ -208,6 +209,9 @@ msgstr "E102: Nie mogę znaleźć bufora \"%s\""
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: Bufor \"%s\" nie jest w trybie różnicowania"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: Nieoczekiwana zmiana bufora"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: Escape jest niedozwolone w dwugrafie"
 
@@ -221,8 +225,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " Dopełnianie słów kluczowych (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Dopełnianie pełnych wierszy (^L^N^P)"
@@ -254,8 +258,8 @@ msgstr "Dopełnianie zdefiniowane przez użytkownika (^U^N^P)"
 msgid " Omni completion (^O^N^P)"
 msgstr " Omni uzupełnianie (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr "Propozycja ortografii (^L^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr "Propozycja pisowni (^L^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " Lokalne dopełnianie słów kluczowych (^N^P)"
@@ -526,8 +530,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "wywołano inputrestore() więcej razy niż inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: Zakres niedozwolony"
+msgid "E786: Range not allowed"
+msgstr "E786: Zakres niedozwolony"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: Nieprawidłowy typ dla len()"
@@ -1084,7 +1088,8 @@ msgid "End of function"
 msgstr "Koniec funkcji"
 
 msgid "E464: Ambiguous use of user-defined command"
-msgstr "E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownika"
+msgstr ""
+"E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez użytkownika"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Nie jest komendÄ… edytora"
@@ -1167,7 +1172,8 @@ msgid "E180: Invalid complete value: %s"
 msgstr "E180: Niewłaściwa wartość dopełniania: %s"
 
 msgid "E468: Completion argument only allowed for custom completion"
-msgstr "E468: Argument depełniania dozwolony wyłącznie dla dopełniania użytkownika"
+msgstr ""
+"E468: Argument depełniania dozwolony wyłącznie dla dopełniania użytkownika"
 
 msgid "E467: Custom completion requires a function argument"
 msgstr "E467: Dopełnianie użytkownika wymaga funkcji jako argumentu"
@@ -1217,7 +1223,8 @@ msgid "Window position: X %d, Y %d"
 msgstr "Pozycja okna: X %d, Y %d"
 
 msgid "E188: Obtaining window position not implemented for this platform"
-msgstr "E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
+msgstr ""
+"E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos wymaga dwóch argumentów numerycznych"
@@ -1388,6 +1395,9 @@ msgstr "E602: :endtry bez :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction poza funkcjÄ…"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Nie można teraz edytować innego bufora"
+
 msgid "tagname"
 msgstr "nazwa znacznika"
 
@@ -1514,7 +1524,8 @@ msgid "E676: No matching autocommands for acwrite buffer"
 msgstr "E676: Brak pasujÄ…cych autokomend dla bufora acwrite"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr "E203: Autokomendy skasowały lub wyładowały bufor przeznaczony do zapisu"
+msgstr ""
+"E203: Autokomendy skasowały lub wyładowały bufor przeznaczony do zapisu"
 
 msgid "E204: Autocommand changed number of lines in unexpected way"
 msgstr "E204: Autokomenda zmieniła liczbę wierszy w nieoczekiwany sposób"
@@ -1568,7 +1579,8 @@ msgid "E512: Close failed"
 msgstr "E512: Zamknięcie się nie powiodło"
 
 msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
-msgstr "E513: Błąd zapisu, przemiana się nie powiodła (opróżnij 'fenc' aby wymusić)"
+msgstr ""
+"E513: Błąd zapisu, przemiana się nie powiodła (opróżnij 'fenc' aby wymusić)"
 
 msgid "E514: write error (file system full?)"
 msgstr "E514: błąd w zapisie (może system plików jest przepełniony?)"
@@ -1699,7 +1711,8 @@ msgstr "Zobacz \":help W11\"  dla dalszych informacji."
 
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
-msgstr "W16: OSTRZEŻENIE: Tryb pliku \"%s\" zmienił się od czasu rozpoczęcia edycji"
+msgstr ""
+"W16: OSTRZEŻENIE: Tryb pliku \"%s\" zmienił się od czasu rozpoczęcia edycji"
 
 msgid "See \":help W16\" for more info."
 msgstr "Zobacz \":help W16\"  dla dalszych informacji."
@@ -2051,7 +2064,8 @@ msgstr ""
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr "E250: Brak czcionek dla następujących zestawów znaków w zestawie czcionek %s:"
+msgstr ""
+"E250: Brak czcionek dla następujących zestawów znaków w zestawie czcionek %s:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -2480,7 +2494,8 @@ msgstr "<okno %d>"
 msgid "no such window"
 msgstr "nie ma takiego okna"
 
-msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E263: Przykro mi, ta komenda jest wyłączona, bo nie można załadować "
 "biblioteki Ruby."
@@ -2613,7 +2628,8 @@ msgstr "błąd vima"
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "nie mogę stworzyć bufora/okna komendy: obiekt jest kasowany"
 
-msgid "cannot register callback command: buffer/window is already being deleted"
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
 msgstr ""
 "nie mogę zarejestrować wstecznego wywołania komendy: bufor/okno już została "
 "skasowana"
@@ -2631,10 +2647,13 @@ msgstr ""
 "nie mogę zarejestrować wstecznego wywołania komendy: brak odniesienia do "
 "bufora/okna"
 
-msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Tcl."
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"Przykro mi, ta komenda jest wyłączona, bo nie można załadować biblioteki Tcl."
 
-msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
+msgid ""
+"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
 "E281: BŁĄD TCL: kod zakończeniowy nie jest całkowity!? Proszę złożyć raport "
 "o tym na vim-dev@vim.org"
@@ -2657,7 +2676,8 @@ msgid "E573: Invalid server id used: %s"
 msgstr "E573: Użyto niewłaściwego id serwera: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
-msgstr "E251: wcielenia instancji rejestru Vima jest źle sformowane.  Skasowano!"
+msgstr ""
+"E251: wcielenia instancji rejestru Vima jest źle sformowane.  Skasowano!"
 
 msgid "Unknown option argument"
 msgstr "Nieznany argument opcji"
@@ -2672,7 +2692,8 @@ msgid "Garbage after option argument"
 msgstr "Åšmiecie po argumencie opcji"
 
 msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-msgstr "Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
+msgstr ""
+"Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
 
 msgid "Invalid argument for"
 msgstr "Niewłaściwy argument dla"
@@ -2885,7 +2906,8 @@ msgstr ""
 "jakiegokolwiek pliku vimrc"
 
 msgid "-c <command>\t\tExecute <command> after loading the first file"
-msgstr "-c <command>\t\tWykonaj komendę <command> po załadowaniu pierwszego pliku"
+msgstr ""
+"-c <command>\t\tWykonaj komendę <command> po załadowaniu pierwszego pliku"
 
 msgid "-S <session>\t\tSource file <session> after loading the first file"
 msgstr "-S <sesja>\t\tWczytaj plik <sesja> po załadowaniu pierwszego pliku"
@@ -2894,10 +2916,12 @@ msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
 msgstr "-s <scriptin>\tWczytuj komendy trybu normalnego z pliku <scriptin>"
 
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
-msgstr "-w <scriptout>\tDołącz wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-w <scriptout>\tDołącz wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
-msgstr "-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-x\t\t\tEdit encrypted files"
 msgstr "-x\t\t\tEdytuj zakodowane pliki"
@@ -2914,14 +2938,20 @@ msgstr "--remote <pliki>\tEdytuj pliki w serwerze Vima jeśli możliwe"
 msgid "--remote-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-silent <pliki> To samo, nie narzekaj jeśli nie ma serwera"
 
-msgid "--remote-wait <files>  As --remote but wait for files to have been edited"
-msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycjÄ…"
+msgid ""
+"--remote-wait <files>  As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycjÄ…"
 
-msgid "--remote-wait-silent <files>  Same, don't complain if there is no server"
-msgstr "--remote-wait-silent <pliki>  To samo, nie narzekaj jeśli nie ma serwera"
+msgid ""
+"--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <pliki>  To samo, nie narzekaj jeśli nie ma serwera"
 
 msgid "--remote-tab <files>  As --remote but open tab page for each file"
-msgstr "--remote-tab <pliki>\tTak jak --remote ale otwórz jedną kartę dla każdego pliku"
+msgstr ""
+"--remote-tab <pliki>\tTak jak --remote ale otwórz jedną kartę dla każdego "
+"pliku"
 
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <klawisze>\tWyślij <klawisze> do serwera Vima i zakończ"
@@ -2981,7 +3011,8 @@ msgid "-background <color>\tUse <color> for the background (also: -bg)"
 msgstr "-background <kolor>\tUżywaj <kolor> dla tła (również: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr "-foreground <kolor>\tUżywaj <kolor> dla normalnego tekstu (również: -fg)"
+msgstr ""
+"-foreground <kolor>\tUżywaj <kolor> dla normalnego tekstu (również: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
 msgstr "-font <font>\t\tUżywaj <font> dla normalnego tekstu (również: -fn)"
@@ -2993,16 +3024,19 @@ msgid "-italicfont <font>\tUse <font> for italic text"
 msgstr "-italicfont <font>\tUżywaj <font> dla pochyłego"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr "-geometry <geom>\tUżywaj <geom> dla początkowych rozmiarów (również: -geom)"
+msgstr ""
+"-geometry <geom>\tUżywaj <geom> dla początkowych rozmiarów (również: -geom)"
 
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
 msgstr "-borderwidth <szer>\tUżyj ramki o grubości <szer> (również: -bw)"
 
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
-msgstr "-scrollbarwidth <szer>  Używaj przewijacza o szerokości <szer> (również: -sw)"
+msgstr ""
+"-scrollbarwidth <szer>  Używaj przewijacza o szerokości <szer> (również: -sw)"
 
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr "-menuheight <height>\tStosuj belkę menu o wysokości <height> (również: -mh)"
+msgstr ""
+"-menuheight <height>\tStosuj belkę menu o wysokości <height> (również: -mh)"
 
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tStosuj negatyw kolorów (również: -rv)"
@@ -3191,7 +3225,8 @@ msgstr "E302: Nie mogłem zmienić nazwy pliku wymiany"
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr "E303: Nie mogę otworzyć pliku wymiany dla \"%s\"; odtworzenie niemożliwe"
+msgstr ""
+"E303: Nie mogę otworzyć pliku wymiany dla \"%s\"; odtworzenie niemożliwe"
 
 msgid "E304: ml_upd_block0(): Didn't get block 0??"
 msgstr "E304: ml_upd_block(): Nie otrzymałem bloku 0??"
@@ -3286,14 +3321,16 @@ msgstr "???KONIEC"
 msgid "E311: Recovery Interrupted"
 msgstr "E311: Przerwanie odtwarzania"
 
-msgid "E312: Errors detected while recovering; look for lines starting with ???"
+msgid ""
+"E312: Errors detected while recovering; look for lines starting with ???"
 msgstr "E312: Wykryto błędy podczas odtwarzania; od których wierszy zacząć ???"
 
 msgid "See \":help E312\" for more information."
 msgstr "Zobacz \":help E312\" dla dalszych informacji."
 
 msgid "Recovery completed. You should check if everything is OK."
-msgstr "Odtwarzanie zakończono. Powinieneś sprawdzić czy wszystko jest w porządku."
+msgstr ""
+"Odtwarzanie zakończono. Powinieneś sprawdzić czy wszystko jest w porządku."
 
 msgid ""
 "\n"
@@ -4210,7 +4247,8 @@ msgstr "Wydrukowano '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-msgstr "E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
+msgstr ""
+"E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
 
 #, c-format
 msgid "E245: Illegal char '%c' in font name \"%s\""
@@ -4651,7 +4689,8 @@ msgstr "E756: Sprawdzanie pisowni nie jest włączone"
 
 #, c-format
 msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr "Ostrzeżenie: Nie mogę znaleźć listy słów \"%s.%s.spl\" lub \"%s.ascii.spl\""
+msgstr ""
+"Ostrzeżenie: Nie mogę znaleźć listy słów \"%s.%s.spl\" lub \"%s.ascii.spl\""
 
 #, c-format
 msgid "Reading spell file \"%s\""
@@ -4697,6 +4736,22 @@ msgstr "Nieprawidłowa wartość FLAG w %s wierz %d: %s"
 msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG po użyciu flag w %s wiersz %d: %s"
 
+#, c-format
+msgid ""
+"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDFORBIDFLAG po PFX może skutkować złym wynikiem w %s "
+"wiersz %d"
+
+#, c-format
+msgid ""
+"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDPERMITFLAG po PFX może skutkować złym wynikiem w %s "
+"wiersz %d"
+
 #, c-format
 msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
 msgstr "Zła wartość COMPOUNDWORDMAX w %s wiersz %d: %s"
@@ -4725,7 +4780,9 @@ msgstr "Powtórzony afiks w %s wiersz %d: %s"
 msgid ""
 "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
 "line %d: %s"
-msgstr "Afiks użyty także dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
+msgstr ""
+"Afiks użyty także dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %"
+"s wiersz %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4735,10 +4792,6 @@ msgstr "Oczekiwano Y lub N w %s wierszu %d: %s"
 msgid "Broken condition in %s line %d: %s"
 msgstr "Błędny warunek w %s wiersz %d: %s"
 
-#, c-format
-msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-msgstr "Flagi afiksów zignorowane kiedy użyto PFXPOSTPONE w %s wierz %d: %s"
-
 #, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Oczekiwano ilości REP(SAL) w %s wierszu %d"
@@ -5667,7 +5720,8 @@ msgid "E370: Could not load library %s"
 msgstr "E370: Nie mogłem załadować biblioteki %s"
 
 msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wyłączona: nie mogłem załadować biblioteki Perla."
+msgstr ""
+"Przykro mi, ta komenda jest wyłączona: nie mogłem załadować biblioteki Perla."
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr "E299: wyliczenie Perla zabronione w piaskownicy bez modułu Safe"
@@ -5717,7 +5771,8 @@ msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: po \\ powinno być /, ? lub &"
 
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr "E11: Niedozwolone w oknie wiersza poleceń; <CR> wykonuje, CTRL-C opuszcza"
+msgstr ""
+"E11: Niedozwolone w oknie wiersza poleceń; <CR> wykonuje, CTRL-C opuszcza"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
 msgstr ""
@@ -6040,4 +6095,3 @@ msgstr "szukanie dobiło GÓRY; kontynuacja od KOŃCA"
 
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "szukanie dobiło KOŃCA; kontynuacja od GÓRY"
-
diff --git a/src/po/pl.cp1250.po b/src/po/pl.cp1250.po
index a0e5bf256df405eb7cb72d1adcf601e41771e729..79cb55e5d0b45e94de65d76ebc193fbd3271bb6c 100644
--- a/src/po/pl.cp1250.po
+++ b/src/po/pl.cp1250.po
@@ -1,7 +1,7 @@
 # translation of pl.po to Polish
 # Polish Translation for Vim
 #
-# updated 2005 for vim-7.0
+# updated 2006 for vim-7.0
 #
 # FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
 # Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-01 18:24+0200\n"
-"PO-Revision-Date: 2006-04-01 18:39+0200\n"
+"POT-Creation-Date: 2006-04-12 20:24+0200\n"
+"PO-Revision-Date: 2006-04-12 20:28+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
 "Language-Team: Polish <mikmach@wp.pl>\n"
 "MIME-Version: 1.0\n"
@@ -198,7 +198,8 @@ msgid "E100: No other buffer in diff mode"
 msgstr "E100: Brak innego bufora w trybie ró¿nic"
 
 msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr "E101: Wiêcej ni¿ jeden bufor w trybie ró¿nicowania, nie wiem którego u¿yæ"
+msgstr ""
+"E101: Wiêcej ni¿ jeden bufor w trybie ró¿nicowania, nie wiem którego u¿yæ"
 
 #, c-format
 msgid "E102: Can't find buffer \"%s\""
@@ -208,6 +209,9 @@ msgstr "E102: Nie mog
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: Bufor \"%s\" nie jest w trybie ró¿nicowania"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: Nieoczekiwana zmiana bufora"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: Escape jest niedozwolone w dwugrafie"
 
@@ -221,8 +225,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " Dope³nianie s³ów kluczowych (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Dope³nianie pe³nych wierszy (^L^N^P)"
@@ -254,8 +258,8 @@ msgstr "Dope
 msgid " Omni completion (^O^N^P)"
 msgstr " Omni uzupe³nianie (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr "Propozycja ortografii (^L^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr "Propozycja pisowni (^L^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " Lokalne dope³nianie s³ów kluczowych (^N^P)"
@@ -526,8 +530,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "wywo³ano inputrestore() wiêcej razy ni¿ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: Zakres niedozwolony"
+msgid "E786: Range not allowed"
+msgstr "E786: Zakres niedozwolony"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: Nieprawid³owy typ dla len()"
@@ -1084,7 +1088,8 @@ msgid "End of function"
 msgstr "Koniec funkcji"
 
 msgid "E464: Ambiguous use of user-defined command"
-msgstr "E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u¿ytkownika"
+msgstr ""
+"E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u¿ytkownika"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Nie jest komend¹ edytora"
@@ -1167,7 +1172,8 @@ msgid "E180: Invalid complete value: %s"
 msgstr "E180: Niew³aœciwa wartoœæ dope³niania: %s"
 
 msgid "E468: Completion argument only allowed for custom completion"
-msgstr "E468: Argument depe³niania dozwolony wy³¹cznie dla dope³niania u¿ytkownika"
+msgstr ""
+"E468: Argument depe³niania dozwolony wy³¹cznie dla dope³niania u¿ytkownika"
 
 msgid "E467: Custom completion requires a function argument"
 msgstr "E467: Dope³nianie u¿ytkownika wymaga funkcji jako argumentu"
@@ -1217,7 +1223,8 @@ msgid "Window position: X %d, Y %d"
 msgstr "Pozycja okna: X %d, Y %d"
 
 msgid "E188: Obtaining window position not implemented for this platform"
-msgstr "E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
+msgstr ""
+"E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos wymaga dwóch argumentów numerycznych"
@@ -1388,6 +1395,9 @@ msgstr "E602: :endtry bez :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction poza funkcj¹"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Nie mo¿na teraz edytowaæ innego bufora"
+
 msgid "tagname"
 msgstr "nazwa znacznika"
 
@@ -1514,7 +1524,8 @@ msgid "E676: No matching autocommands for acwrite buffer"
 msgstr "E676: Brak pasuj¹cych autokomend dla bufora acwrite"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr "E203: Autokomendy skasowa³y lub wy³adowa³y bufor przeznaczony do zapisu"
+msgstr ""
+"E203: Autokomendy skasowa³y lub wy³adowa³y bufor przeznaczony do zapisu"
 
 msgid "E204: Autocommand changed number of lines in unexpected way"
 msgstr "E204: Autokomenda zmieni³a liczbê wierszy w nieoczekiwany sposób"
@@ -1568,7 +1579,8 @@ msgid "E512: Close failed"
 msgstr "E512: Zamkniêcie siê nie powiod³o"
 
 msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
-msgstr "E513: B³¹d zapisu, przemiana siê nie powiod³a (opró¿nij 'fenc' aby wymusiæ)"
+msgstr ""
+"E513: B³¹d zapisu, przemiana siê nie powiod³a (opró¿nij 'fenc' aby wymusiæ)"
 
 msgid "E514: write error (file system full?)"
 msgstr "E514: b³¹d w zapisie (mo¿e system plików jest przepe³niony?)"
@@ -1699,7 +1711,8 @@ msgstr "Zobacz \":help W11\"  dla dalszych informacji."
 
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
-msgstr "W16: OSTRZE¯ENIE: Tryb pliku \"%s\" zmieni³ siê od czasu rozpoczêcia edycji"
+msgstr ""
+"W16: OSTRZE¯ENIE: Tryb pliku \"%s\" zmieni³ siê od czasu rozpoczêcia edycji"
 
 msgid "See \":help W16\" for more info."
 msgstr "Zobacz \":help W16\"  dla dalszych informacji."
@@ -2051,7 +2064,8 @@ msgstr ""
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr "E250: Brak czcionek dla nastêpuj¹cych zestawów znaków w zestawie czcionek %s:"
+msgstr ""
+"E250: Brak czcionek dla nastêpuj¹cych zestawów znaków w zestawie czcionek %s:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -2480,7 +2494,8 @@ msgstr "<okno %d>"
 msgid "no such window"
 msgstr "nie ma takiego okna"
 
-msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E263: Przykro mi, ta komenda jest wy³¹czona, bo nie mo¿na za³adowaæ "
 "biblioteki Ruby."
@@ -2613,7 +2628,8 @@ msgstr "b
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "nie mogê stworzyæ bufora/okna komendy: obiekt jest kasowany"
 
-msgid "cannot register callback command: buffer/window is already being deleted"
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
 msgstr ""
 "nie mogê zarejestrowaæ wstecznego wywo³ania komendy: bufor/okno ju¿ zosta³a "
 "skasowana"
@@ -2631,10 +2647,13 @@ msgstr ""
 "nie mogê zarejestrowaæ wstecznego wywo³ania komendy: brak odniesienia do "
 "bufora/okna"
 
-msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wy³¹czona, bo nie mo¿na za³adowaæ biblioteki Tcl."
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"Przykro mi, ta komenda jest wy³¹czona, bo nie mo¿na za³adowaæ biblioteki Tcl."
 
-msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
+msgid ""
+"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
 "E281: B£¥D TCL: kod zakoñczeniowy nie jest ca³kowity!? Proszê z³o¿yæ raport "
 "o tym na vim-dev@vim.org"
@@ -2657,7 +2676,8 @@ msgid "E573: Invalid server id used: %s"
 msgstr "E573: U¿yto niew³aœciwego id serwera: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
-msgstr "E251: wcielenia instancji rejestru Vima jest Ÿle sformowane.  Skasowano!"
+msgstr ""
+"E251: wcielenia instancji rejestru Vima jest Ÿle sformowane.  Skasowano!"
 
 msgid "Unknown option argument"
 msgstr "Nieznany argument opcji"
@@ -2672,7 +2692,8 @@ msgid "Garbage after option argument"
 msgstr "Œmiecie po argumencie opcji"
 
 msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-msgstr "Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
+msgstr ""
+"Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
 
 msgid "Invalid argument for"
 msgstr "Niew³aœciwy argument dla"
@@ -2885,7 +2906,8 @@ msgstr ""
 "jakiegokolwiek pliku vimrc"
 
 msgid "-c <command>\t\tExecute <command> after loading the first file"
-msgstr "-c <command>\t\tWykonaj komendê <command> po za³adowaniu pierwszego pliku"
+msgstr ""
+"-c <command>\t\tWykonaj komendê <command> po za³adowaniu pierwszego pliku"
 
 msgid "-S <session>\t\tSource file <session> after loading the first file"
 msgstr "-S <sesja>\t\tWczytaj plik <sesja> po za³adowaniu pierwszego pliku"
@@ -2894,10 +2916,12 @@ msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
 msgstr "-s <scriptin>\tWczytuj komendy trybu normalnego z pliku <scriptin>"
 
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
-msgstr "-w <scriptout>\tDo³¹cz wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-w <scriptout>\tDo³¹cz wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
-msgstr "-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-x\t\t\tEdit encrypted files"
 msgstr "-x\t\t\tEdytuj zakodowane pliki"
@@ -2914,14 +2938,20 @@ msgstr "--remote <pliki>\tEdytuj pliki w serwerze Vima je
 msgid "--remote-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-silent <pliki> To samo, nie narzekaj jeœli nie ma serwera"
 
-msgid "--remote-wait <files>  As --remote but wait for files to have been edited"
-msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycj¹"
+msgid ""
+"--remote-wait <files>  As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycj¹"
 
-msgid "--remote-wait-silent <files>  Same, don't complain if there is no server"
-msgstr "--remote-wait-silent <pliki>  To samo, nie narzekaj jeœli nie ma serwera"
+msgid ""
+"--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <pliki>  To samo, nie narzekaj jeœli nie ma serwera"
 
 msgid "--remote-tab <files>  As --remote but open tab page for each file"
-msgstr "--remote-tab <pliki>\tTak jak --remote ale otwórz jedn¹ kartê dla ka¿dego pliku"
+msgstr ""
+"--remote-tab <pliki>\tTak jak --remote ale otwórz jedn¹ kartê dla ka¿dego "
+"pliku"
 
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <klawisze>\tWyœlij <klawisze> do serwera Vima i zakoñcz"
@@ -2981,7 +3011,8 @@ msgid "-background <color>\tUse <color> for the background (also: -bg)"
 msgstr "-background <kolor>\tU¿ywaj <kolor> dla t³a (równie¿: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr "-foreground <kolor>\tU¿ywaj <kolor> dla normalnego tekstu (równie¿: -fg)"
+msgstr ""
+"-foreground <kolor>\tU¿ywaj <kolor> dla normalnego tekstu (równie¿: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
 msgstr "-font <font>\t\tU¿ywaj <font> dla normalnego tekstu (równie¿: -fn)"
@@ -2993,16 +3024,19 @@ msgid "-italicfont <font>\tUse <font> for italic text"
 msgstr "-italicfont <font>\tU¿ywaj <font> dla pochy³ego"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr "-geometry <geom>\tU¿ywaj <geom> dla pocz¹tkowych rozmiarów (równie¿: -geom)"
+msgstr ""
+"-geometry <geom>\tU¿ywaj <geom> dla pocz¹tkowych rozmiarów (równie¿: -geom)"
 
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
 msgstr "-borderwidth <szer>\tU¿yj ramki o gruboœci <szer> (równie¿: -bw)"
 
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
-msgstr "-scrollbarwidth <szer>  U¿ywaj przewijacza o szerokoœci <szer> (równie¿: -sw)"
+msgstr ""
+"-scrollbarwidth <szer>  U¿ywaj przewijacza o szerokoœci <szer> (równie¿: -sw)"
 
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr "-menuheight <height>\tStosuj belkê menu o wysokoœci <height> (równie¿: -mh)"
+msgstr ""
+"-menuheight <height>\tStosuj belkê menu o wysokoœci <height> (równie¿: -mh)"
 
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tStosuj negatyw kolorów (równie¿: -rv)"
@@ -3191,7 +3225,8 @@ msgstr "E302: Nie mog
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr "E303: Nie mogê otworzyæ pliku wymiany dla \"%s\"; odtworzenie niemo¿liwe"
+msgstr ""
+"E303: Nie mogê otworzyæ pliku wymiany dla \"%s\"; odtworzenie niemo¿liwe"
 
 msgid "E304: ml_upd_block0(): Didn't get block 0??"
 msgstr "E304: ml_upd_block(): Nie otrzyma³em bloku 0??"
@@ -3286,14 +3321,16 @@ msgstr "???KONIEC"
 msgid "E311: Recovery Interrupted"
 msgstr "E311: Przerwanie odtwarzania"
 
-msgid "E312: Errors detected while recovering; look for lines starting with ???"
+msgid ""
+"E312: Errors detected while recovering; look for lines starting with ???"
 msgstr "E312: Wykryto b³êdy podczas odtwarzania; od których wierszy zacz¹æ ???"
 
 msgid "See \":help E312\" for more information."
 msgstr "Zobacz \":help E312\" dla dalszych informacji."
 
 msgid "Recovery completed. You should check if everything is OK."
-msgstr "Odtwarzanie zakoñczono. Powinieneœ sprawdziæ czy wszystko jest w porz¹dku."
+msgstr ""
+"Odtwarzanie zakoñczono. Powinieneœ sprawdziæ czy wszystko jest w porz¹dku."
 
 msgid ""
 "\n"
@@ -4210,7 +4247,8 @@ msgstr "Wydrukowano '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-msgstr "E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
+msgstr ""
+"E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
 
 #, c-format
 msgid "E245: Illegal char '%c' in font name \"%s\""
@@ -4651,7 +4689,8 @@ msgstr "E756: Sprawdzanie pisowni nie jest w
 
 #, c-format
 msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr "Ostrze¿enie: Nie mogê znaleŸæ listy s³ów \"%s.%s.spl\" lub \"%s.ascii.spl\""
+msgstr ""
+"Ostrze¿enie: Nie mogê znaleŸæ listy s³ów \"%s.%s.spl\" lub \"%s.ascii.spl\""
 
 #, c-format
 msgid "Reading spell file \"%s\""
@@ -4697,6 +4736,22 @@ msgstr "Nieprawid
 msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG po u¿yciu flag w %s wiersz %d: %s"
 
+#, c-format
+msgid ""
+"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDFORBIDFLAG po PFX mo¿e skutkowaæ z³ym wynikiem w %s "
+"wiersz %d"
+
+#, c-format
+msgid ""
+"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDPERMITFLAG po PFX mo¿e skutkowaæ z³ym wynikiem w %s "
+"wiersz %d"
+
 #, c-format
 msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
 msgstr "Z³a wartoœæ COMPOUNDWORDMAX w %s wiersz %d: %s"
@@ -4725,7 +4780,9 @@ msgstr "Powt
 msgid ""
 "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
 "line %d: %s"
-msgstr "Afiks u¿yty tak¿e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
+msgstr ""
+"Afiks u¿yty tak¿e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %"
+"s wiersz %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4735,10 +4792,6 @@ msgstr "Oczekiwano Y lub N w %s wierszu %d: %s"
 msgid "Broken condition in %s line %d: %s"
 msgstr "B³êdny warunek w %s wiersz %d: %s"
 
-#, c-format
-msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-msgstr "Flagi afiksów zignorowane kiedy u¿yto PFXPOSTPONE w %s wierz %d: %s"
-
 #, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Oczekiwano iloœci REP(SAL) w %s wierszu %d"
@@ -5667,7 +5720,8 @@ msgid "E370: Could not load library %s"
 msgstr "E370: Nie mog³em za³adowaæ biblioteki %s"
 
 msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wy³¹czona: nie mog³em za³adowaæ biblioteki Perla."
+msgstr ""
+"Przykro mi, ta komenda jest wy³¹czona: nie mog³em za³adowaæ biblioteki Perla."
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr "E299: wyliczenie Perla zabronione w piaskownicy bez modu³u Safe"
@@ -5717,7 +5771,8 @@ msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: po \\ powinno byæ /, ? lub &"
 
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr "E11: Niedozwolone w oknie wiersza poleceñ; <CR> wykonuje, CTRL-C opuszcza"
+msgstr ""
+"E11: Niedozwolone w oknie wiersza poleceñ; <CR> wykonuje, CTRL-C opuszcza"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
 msgstr ""
@@ -6040,4 +6095,3 @@ msgstr "szukanie dobi
 
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "szukanie dobi³o KOÑCA; kontynuacja od GÓRY"
-
diff --git a/src/po/pl.po b/src/po/pl.po
index 13d960b5a646ffe009c8cf4da3ad0d5245797292..51034737a568ba74321c0aec443952a2ac6b7cbe 100644
--- a/src/po/pl.po
+++ b/src/po/pl.po
@@ -1,7 +1,7 @@
 # translation of pl.po to Polish
 # Polish Translation for Vim
 #
-# updated 2005 for vim-7.0
+# updated 2006 for vim-7.0
 #
 # FIRST AUTHOR Marcin Dalecki <martin@dalecki.de>, 2000.
 # Mikolaj Machowski <mikmach@wp.pl>, 2004, 2005, 2006.
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-04-01 18:24+0200\n"
-"PO-Revision-Date: 2006-04-01 18:39+0200\n"
+"POT-Creation-Date: 2006-04-12 20:24+0200\n"
+"PO-Revision-Date: 2006-04-12 20:28+0200\n"
 "Last-Translator: Mikolaj Machowski <mikmach@wp.pl>\n"
 "Language-Team: Polish <mikmach@wp.pl>\n"
 "MIME-Version: 1.0\n"
@@ -198,7 +198,8 @@ msgid "E100: No other buffer in diff mode"
 msgstr "E100: Brak innego bufora w trybie ró¿nic"
 
 msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr "E101: Wiêcej ni¿ jeden bufor w trybie ró¿nicowania, nie wiem którego u¿yæ"
+msgstr ""
+"E101: Wiêcej ni¿ jeden bufor w trybie ró¿nicowania, nie wiem którego u¿yæ"
 
 #, c-format
 msgid "E102: Can't find buffer \"%s\""
@@ -208,6 +209,9 @@ msgstr "E102: Nie mog
 msgid "E103: Buffer \"%s\" is not in diff mode"
 msgstr "E103: Bufor \"%s\" nie jest w trybie ró¿nicowania"
 
+msgid "E787: Buffer changed unexpectedly"
+msgstr "E787: Nieoczekiwana zmiana bufora"
+
 msgid "E104: Escape not allowed in digraph"
 msgstr "E104: Escape jest niedozwolone w dwugrafie"
 
@@ -221,8 +225,8 @@ msgid " Keyword completion (^N^P)"
 msgstr " Dope³nianie s³ów kluczowych (^N^P)"
 
 #. ctrl_x_mode == 0, ^P/^N compl.
-msgid " ^X mode (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
-msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^P^S^U^V^Y)"
+msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
+msgstr " ^X tryb (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)"
 
 msgid " Whole line completion (^L^N^P)"
 msgstr " Dope³nianie pe³nych wierszy (^L^N^P)"
@@ -254,8 +258,8 @@ msgstr "Dope
 msgid " Omni completion (^O^N^P)"
 msgstr " Omni uzupe³nianie (^O^N^P)"
 
-msgid " Spelling suggestion (^S^N^P)"
-msgstr "Propozycja ortografii (^L^N^P)"
+msgid " Spelling suggestion (s^N^P)"
+msgstr "Propozycja pisowni (^L^N^P)"
 
 msgid " Keyword Local completion (^N^P)"
 msgstr " Lokalne dope³nianie s³ów kluczowych (^N^P)"
@@ -526,8 +530,8 @@ msgstr ""
 msgid "called inputrestore() more often than inputsave()"
 msgstr "wywo³ano inputrestore() wiêcej razy ni¿ inputsave()"
 
-msgid "E745: Range not allowed"
-msgstr "E745: Zakres niedozwolony"
+msgid "E786: Range not allowed"
+msgstr "E786: Zakres niedozwolony"
 
 msgid "E701: Invalid type for len()"
 msgstr "E701: Nieprawid³owy typ dla len()"
@@ -1084,7 +1088,8 @@ msgid "End of function"
 msgstr "Koniec funkcji"
 
 msgid "E464: Ambiguous use of user-defined command"
-msgstr "E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u¿ytkownika"
+msgstr ""
+"E464: Niejednoznaczne zastosowanie komendy zdefiniowanej przez u¿ytkownika"
 
 msgid "E492: Not an editor command"
 msgstr "E492: Nie jest komend± edytora"
@@ -1167,7 +1172,8 @@ msgid "E180: Invalid complete value: %s"
 msgstr "E180: Niew³a¶ciwa warto¶æ dope³niania: %s"
 
 msgid "E468: Completion argument only allowed for custom completion"
-msgstr "E468: Argument depe³niania dozwolony wy³±cznie dla dope³niania u¿ytkownika"
+msgstr ""
+"E468: Argument depe³niania dozwolony wy³±cznie dla dope³niania u¿ytkownika"
 
 msgid "E467: Custom completion requires a function argument"
 msgstr "E467: Dope³nianie u¿ytkownika wymaga funkcji jako argumentu"
@@ -1217,7 +1223,8 @@ msgid "Window position: X %d, Y %d"
 msgstr "Pozycja okna: X %d, Y %d"
 
 msgid "E188: Obtaining window position not implemented for this platform"
-msgstr "E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
+msgstr ""
+"E188: Pozyskiwanie pozycji okna nie jest zaimplementowane dla tego systemu"
 
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: :winpos wymaga dwóch argumentów numerycznych"
@@ -1388,6 +1395,9 @@ msgstr "E602: :endtry bez :try"
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: :endfunction poza funkcj±"
 
+msgid "E788: Not allowed to edit another buffer now"
+msgstr "E788: Nie mo¿na teraz edytowaæ innego bufora"
+
 msgid "tagname"
 msgstr "nazwa znacznika"
 
@@ -1514,7 +1524,8 @@ msgid "E676: No matching autocommands for acwrite buffer"
 msgstr "E676: Brak pasuj±cych autokomend dla bufora acwrite"
 
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
-msgstr "E203: Autokomendy skasowa³y lub wy³adowa³y bufor przeznaczony do zapisu"
+msgstr ""
+"E203: Autokomendy skasowa³y lub wy³adowa³y bufor przeznaczony do zapisu"
 
 msgid "E204: Autocommand changed number of lines in unexpected way"
 msgstr "E204: Autokomenda zmieni³a liczbê wierszy w nieoczekiwany sposób"
@@ -1568,7 +1579,8 @@ msgid "E512: Close failed"
 msgstr "E512: Zamkniêcie siê nie powiod³o"
 
 msgid "E513: write error, conversion failed (make 'fenc' empty to override)"
-msgstr "E513: B³±d zapisu, przemiana siê nie powiod³a (opró¿nij 'fenc' aby wymusiæ)"
+msgstr ""
+"E513: B³±d zapisu, przemiana siê nie powiod³a (opró¿nij 'fenc' aby wymusiæ)"
 
 msgid "E514: write error (file system full?)"
 msgstr "E514: b³±d w zapisie (mo¿e system plików jest przepe³niony?)"
@@ -1699,7 +1711,8 @@ msgstr "Zobacz \":help W11\"  dla dalszych informacji."
 
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
-msgstr "W16: OSTRZE¯ENIE: Tryb pliku \"%s\" zmieni³ siê od czasu rozpoczêcia edycji"
+msgstr ""
+"W16: OSTRZE¯ENIE: Tryb pliku \"%s\" zmieni³ siê od czasu rozpoczêcia edycji"
 
 msgid "See \":help W16\" for more info."
 msgstr "Zobacz \":help W16\"  dla dalszych informacji."
@@ -2051,7 +2064,8 @@ msgstr ""
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr "E250: Brak czcionek dla nastêpuj±cych zestawów znaków w zestawie czcionek %s:"
+msgstr ""
+"E250: Brak czcionek dla nastêpuj±cych zestawów znaków w zestawie czcionek %s:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -2480,7 +2494,8 @@ msgstr "<okno %d>"
 msgid "no such window"
 msgstr "nie ma takiego okna"
 
-msgid "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
 "E263: Przykro mi, ta komenda jest wy³±czona, bo nie mo¿na za³adowaæ "
 "biblioteki Ruby."
@@ -2613,7 +2628,8 @@ msgstr "b
 msgid "cannot create buffer/window command: object is being deleted"
 msgstr "nie mogê stworzyæ bufora/okna komendy: obiekt jest kasowany"
 
-msgid "cannot register callback command: buffer/window is already being deleted"
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
 msgstr ""
 "nie mogê zarejestrowaæ wstecznego wywo³ania komendy: bufor/okno ju¿ zosta³a "
 "skasowana"
@@ -2631,10 +2647,13 @@ msgstr ""
 "nie mogê zarejestrowaæ wstecznego wywo³ania komendy: brak odniesienia do "
 "bufora/okna"
 
-msgid "E571: Sorry, this command is disabled: the Tcl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wy³±czona, bo nie mo¿na za³adowaæ biblioteki Tcl."
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"Przykro mi, ta komenda jest wy³±czona, bo nie mo¿na za³adowaæ biblioteki Tcl."
 
-msgid "E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
+msgid ""
+"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
 msgstr ""
 "E281: B£¡D TCL: kod zakoñczeniowy nie jest ca³kowity!? Proszê z³o¿yæ raport "
 "o tym na vim-dev@vim.org"
@@ -2657,7 +2676,8 @@ msgid "E573: Invalid server id used: %s"
 msgstr "E573: U¿yto niew³a¶ciwego id serwera: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
-msgstr "E251: wcielenia instancji rejestru Vima jest ¼le sformowane.  Skasowano!"
+msgstr ""
+"E251: wcielenia instancji rejestru Vima jest ¼le sformowane.  Skasowano!"
 
 msgid "Unknown option argument"
 msgstr "Nieznany argument opcji"
@@ -2672,7 +2692,8 @@ msgid "Garbage after option argument"
 msgstr "¦miecie po argumencie opcji"
 
 msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
-msgstr "Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
+msgstr ""
+"Zbyt wiele argumentów \"+komenda\", \"-c komenda\" lub \"--cmd komenda\""
 
 msgid "Invalid argument for"
 msgstr "Niew³a¶ciwy argument dla"
@@ -2885,7 +2906,8 @@ msgstr ""
 "jakiegokolwiek pliku vimrc"
 
 msgid "-c <command>\t\tExecute <command> after loading the first file"
-msgstr "-c <command>\t\tWykonaj komendê <command> po za³adowaniu pierwszego pliku"
+msgstr ""
+"-c <command>\t\tWykonaj komendê <command> po za³adowaniu pierwszego pliku"
 
 msgid "-S <session>\t\tSource file <session> after loading the first file"
 msgstr "-S <sesja>\t\tWczytaj plik <sesja> po za³adowaniu pierwszego pliku"
@@ -2894,10 +2916,12 @@ msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
 msgstr "-s <scriptin>\tWczytuj komendy trybu normalnego z pliku <scriptin>"
 
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
-msgstr "-w <scriptout>\tDo³±cz wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-w <scriptout>\tDo³±cz wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
-msgstr "-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
+msgstr ""
+"-W <scriptout>\tZapisuj wszystkie wprowadzane komendy do pliku <scriptout>"
 
 msgid "-x\t\t\tEdit encrypted files"
 msgstr "-x\t\t\tEdytuj zakodowane pliki"
@@ -2914,14 +2938,20 @@ msgstr "--remote <pliki>\tEdytuj pliki w serwerze Vima je
 msgid "--remote-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-silent <pliki> To samo, nie narzekaj je¶li nie ma serwera"
 
-msgid "--remote-wait <files>  As --remote but wait for files to have been edited"
-msgstr "--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycj±"
+msgid ""
+"--remote-wait <files>  As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <pliki>\tTak jak --remote, lecz czekaj na pliki przed edycj±"
 
-msgid "--remote-wait-silent <files>  Same, don't complain if there is no server"
-msgstr "--remote-wait-silent <pliki>  To samo, nie narzekaj je¶li nie ma serwera"
+msgid ""
+"--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <pliki>  To samo, nie narzekaj je¶li nie ma serwera"
 
 msgid "--remote-tab <files>  As --remote but open tab page for each file"
-msgstr "--remote-tab <pliki>\tTak jak --remote ale otwórz jedn± kartê dla ka¿dego pliku"
+msgstr ""
+"--remote-tab <pliki>\tTak jak --remote ale otwórz jedn± kartê dla ka¿dego "
+"pliku"
 
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <klawisze>\tWy¶lij <klawisze> do serwera Vima i zakoñcz"
@@ -2981,7 +3011,8 @@ msgid "-background <color>\tUse <color> for the background (also: -bg)"
 msgstr "-background <kolor>\tU¿ywaj <kolor> dla t³a (równie¿: -bg)"
 
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
-msgstr "-foreground <kolor>\tU¿ywaj <kolor> dla normalnego tekstu (równie¿: -fg)"
+msgstr ""
+"-foreground <kolor>\tU¿ywaj <kolor> dla normalnego tekstu (równie¿: -fg)"
 
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
 msgstr "-font <font>\t\tU¿ywaj <font> dla normalnego tekstu (równie¿: -fn)"
@@ -2993,16 +3024,19 @@ msgid "-italicfont <font>\tUse <font> for italic text"
 msgstr "-italicfont <font>\tU¿ywaj <font> dla pochy³ego"
 
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
-msgstr "-geometry <geom>\tU¿ywaj <geom> dla pocz±tkowych rozmiarów (równie¿: -geom)"
+msgstr ""
+"-geometry <geom>\tU¿ywaj <geom> dla pocz±tkowych rozmiarów (równie¿: -geom)"
 
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
 msgstr "-borderwidth <szer>\tU¿yj ramki o grubo¶ci <szer> (równie¿: -bw)"
 
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
-msgstr "-scrollbarwidth <szer>  U¿ywaj przewijacza o szeroko¶ci <szer> (równie¿: -sw)"
+msgstr ""
+"-scrollbarwidth <szer>  U¿ywaj przewijacza o szeroko¶ci <szer> (równie¿: -sw)"
 
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
-msgstr "-menuheight <height>\tStosuj belkê menu o wysoko¶ci <height> (równie¿: -mh)"
+msgstr ""
+"-menuheight <height>\tStosuj belkê menu o wysoko¶ci <height> (równie¿: -mh)"
 
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tStosuj negatyw kolorów (równie¿: -rv)"
@@ -3191,7 +3225,8 @@ msgstr "E302: Nie mog
 
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
-msgstr "E303: Nie mogê otworzyæ pliku wymiany dla \"%s\"; odtworzenie niemo¿liwe"
+msgstr ""
+"E303: Nie mogê otworzyæ pliku wymiany dla \"%s\"; odtworzenie niemo¿liwe"
 
 msgid "E304: ml_upd_block0(): Didn't get block 0??"
 msgstr "E304: ml_upd_block(): Nie otrzyma³em bloku 0??"
@@ -3286,14 +3321,16 @@ msgstr "???KONIEC"
 msgid "E311: Recovery Interrupted"
 msgstr "E311: Przerwanie odtwarzania"
 
-msgid "E312: Errors detected while recovering; look for lines starting with ???"
+msgid ""
+"E312: Errors detected while recovering; look for lines starting with ???"
 msgstr "E312: Wykryto b³êdy podczas odtwarzania; od których wierszy zacz±æ ???"
 
 msgid "See \":help E312\" for more information."
 msgstr "Zobacz \":help E312\" dla dalszych informacji."
 
 msgid "Recovery completed. You should check if everything is OK."
-msgstr "Odtwarzanie zakoñczono. Powiniene¶ sprawdziæ czy wszystko jest w porz±dku."
+msgstr ""
+"Odtwarzanie zakoñczono. Powiniene¶ sprawdziæ czy wszystko jest w porz±dku."
 
 msgid ""
 "\n"
@@ -4210,7 +4247,8 @@ msgstr "Wydrukowano '%s'"
 
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
-msgstr "E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
+msgstr ""
+"E244: Niedozwolona nazwa zestawu znaków \"%s\" w nazwie czcionki \"%s\""
 
 #, c-format
 msgid "E245: Illegal char '%c' in font name \"%s\""
@@ -4651,7 +4689,8 @@ msgstr "E756: Sprawdzanie pisowni nie jest w
 
 #, c-format
 msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""
-msgstr "Ostrze¿enie: Nie mogê znale¼æ listy s³ów \"%s.%s.spl\" lub \"%s.ascii.spl\""
+msgstr ""
+"Ostrze¿enie: Nie mogê znale¼æ listy s³ów \"%s.%s.spl\" lub \"%s.ascii.spl\""
 
 #, c-format
 msgid "Reading spell file \"%s\""
@@ -4697,6 +4736,22 @@ msgstr "Nieprawid
 msgid "FLAG after using flags in %s line %d: %s"
 msgstr "FLAG po u¿yciu flag w %s wiersz %d: %s"
 
+#, c-format
+msgid ""
+"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDFORBIDFLAG po PFX mo¿e skutkowaæ z³ym wynikiem w %s "
+"wiersz %d"
+
+#, c-format
+msgid ""
+"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
+"%d"
+msgstr ""
+"Definiowanie COMPOUNDPERMITFLAG po PFX mo¿e skutkowaæ z³ym wynikiem w %s "
+"wiersz %d"
+
 #, c-format
 msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s"
 msgstr "Z³a warto¶æ COMPOUNDWORDMAX w %s wiersz %d: %s"
@@ -4725,7 +4780,9 @@ msgstr "Powt
 msgid ""
 "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s "
 "line %d: %s"
-msgstr "Afiks u¿yty tak¿e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %s wiersz %d: %s"
+msgstr ""
+"Afiks u¿yty tak¿e dla BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST w %"
+"s wiersz %d: %s"
 
 #, c-format
 msgid "Expected Y or N in %s line %d: %s"
@@ -4735,10 +4792,6 @@ msgstr "Oczekiwano Y lub N w %s wierszu %d: %s"
 msgid "Broken condition in %s line %d: %s"
 msgstr "B³êdny warunek w %s wiersz %d: %s"
 
-#, c-format
-msgid "Affix flags ignored when PFXPOSTPONE used in %s line %d: %s"
-msgstr "Flagi afiksów zignorowane kiedy u¿yto PFXPOSTPONE w %s wierz %d: %s"
-
 #, c-format
 msgid "Expected REP(SAL) count in %s line %d"
 msgstr "Oczekiwano ilo¶ci REP(SAL) w %s wierszu %d"
@@ -5667,7 +5720,8 @@ msgid "E370: Could not load library %s"
 msgstr "E370: Nie mog³em za³adowaæ biblioteki %s"
 
 msgid "Sorry, this command is disabled: the Perl library could not be loaded."
-msgstr "Przykro mi, ta komenda jest wy³±czona: nie mog³em za³adowaæ biblioteki Perla."
+msgstr ""
+"Przykro mi, ta komenda jest wy³±czona: nie mog³em za³adowaæ biblioteki Perla."
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr "E299: wyliczenie Perla zabronione w piaskownicy bez modu³u Safe"
@@ -5717,7 +5771,8 @@ msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: po \\ powinno byæ /, ? lub &"
 
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
-msgstr "E11: Niedozwolone w oknie wiersza poleceñ; <CR> wykonuje, CTRL-C opuszcza"
+msgstr ""
+"E11: Niedozwolone w oknie wiersza poleceñ; <CR> wykonuje, CTRL-C opuszcza"
 
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
 msgstr ""
@@ -6040,4 +6095,3 @@ msgstr "szukanie dobi
 
 msgid "search hit BOTTOM, continuing at TOP"
 msgstr "szukanie dobi³o KOÑCA; kontynuacja od GÓRY"
-
diff --git a/src/spell.c b/src/spell.c
index 787a2c1ca3200038ddd45a52388683d34f322df5..803f32d5359182f914f0e2d63ce59bf49f2aa2a0 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -6901,8 +6901,7 @@ store_aff_word(spin, word, afflist, affile, ht, xht, condit, flags,
 			    /* ... don't use a prefix list if combining
 			     * affixes is not allowed.  But do use the
 			     * compound flags after them. */
-			    if ((!ah->ah_combine || (condit & CONDIT_COMB))
-						       && use_pfxlist != NULL)
+			    if (!ah->ah_combine && use_pfxlist != NULL)
 				use_pfxlist += use_pfxlen;
 			}
 
diff --git a/src/testdir/test3.in b/src/testdir/test3.in
index cd725bffb393ba5925934544f7320f8571c79df6..51ad72095770e8ce7ce2da9ce9683d9828d7a871 100644
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
@@ -723,6 +723,25 @@ void asdf()		/* ind_maxparen may cause trouble here */
 				&& 1)) break;
 }
 
+foo()
+{
+	a = cond ? foo() : asdf
+					   + asdf;
+
+	a = cond ?
+		foo() : asdf
+				+ asdf;
+}
+
+int  main(void)
+{
+	if (a)
+		if (b)
+			2;
+		else 3;
+	next_line_of_code();
+}
+
 /* end of AUTO */
 
 STARTTEST
diff --git a/src/testdir/test3.ok b/src/testdir/test3.ok
index 570f8f63d79cae66a2da3896186788c76e07b3c6..b197a28e001df3d3180400a7c52e2ead227f2869 100644
--- a/src/testdir/test3.ok
+++ b/src/testdir/test3.ok
@@ -711,6 +711,25 @@ void asdf()		/* ind_maxparen may cause trouble here */
 				&& 1)) break;
 }
 
+foo()
+{
+	a = cond ? foo() : asdf
+		+ asdf;
+
+	a = cond ?
+		foo() : asdf
+		+ asdf;
+}
+
+int  main(void)
+{
+	if (a)
+		if (b)
+			2;
+		else 3;
+	next_line_of_code();
+}
+
 /* end of AUTO */
 
 
diff --git a/src/version.h b/src/version.h
index 4b7c05ae503fbfb3cf5688ca84a0207bae96aa34..980a85c97553f15ec6a25070c6d9277724a60966 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70d"
 #define VIM_VERSION_SHORT	"7.0d"
-#define VIM_VERSION_MEDIUM	"7.0d01 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0d01 BETA (2006 Apr 11, compiled "
+#define VIM_VERSION_MEDIUM	"7.0d02 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0d02 BETA (2006 Apr 12)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0d02 BETA (2006 Apr 12, compiled "