From 44a457e94e531de21ed9138035570e6fc23d9019 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Mon, 17 Mar 2003 00:00:00 +0100
Subject: stable 2003.03.17

---
 tex/context/base/colo-run.tex |  16 +--
 tex/context/base/cont-fil.tex |   1 +
 tex/context/base/cont-new.tex |  94 +++++++++----
 tex/context/base/cont-sys.ori |   5 +
 tex/context/base/context.tex  |   2 +-
 tex/context/base/core-buf.tex |  16 +--
 tex/context/base/core-des.tex |  37 +++--
 tex/context/base/core-fig.tex |  13 +-
 tex/context/base/core-fld.tex |   2 +-
 tex/context/base/core-fnt.tex |   4 +-
 tex/context/base/core-grd.tex |  49 ++++---
 tex/context/base/core-hlp.tex |  31 +++--
 tex/context/base/core-int.tex |  10 +-
 tex/context/base/core-itm.tex |   8 +-
 tex/context/base/core-job.tex |   8 +-
 tex/context/base/core-ltb.tex |   4 +-
 tex/context/base/core-mak.tex |  66 +++++++--
 tex/context/base/core-mat.tex |  22 +--
 tex/context/base/core-mis.tex |  25 ++--
 tex/context/base/core-nav.tex |  14 +-
 tex/context/base/core-not.tex |   8 +-
 tex/context/base/core-ntb.tex |  40 ++++--
 tex/context/base/core-pos.tex |  72 +++++-----
 tex/context/base/core-rul.tex | 122 ++++++----------
 tex/context/base/core-sec.tex |  73 ++--------
 tex/context/base/core-spa.tex |  28 +++-
 tex/context/base/core-tab.tex |  20 +--
 tex/context/base/core-tbl.tex |  50 +++----
 tex/context/base/core-ver.tex |   2 +-
 tex/context/base/core-vis.tex |   6 +-
 tex/context/base/enco-grk.tex | 317 ++++++++++++++++++++++++++++++++++++++++++
 tex/context/base/font-chi.tex |   4 +-
 tex/context/base/font-run.tex |  18 +--
 tex/context/base/font-uni.tex |  10 +-
 tex/context/base/m-educat.tex |   4 +-
 tex/context/base/m-plus.tex   |  29 ++++
 tex/context/base/mult-com.tex |  44 +++---
 tex/context/base/mult-con.tex | 156 ++++++++++++---------
 tex/context/base/page-flt.tex |  42 +++---
 tex/context/base/page-imp.tex |  18 +--
 tex/context/base/page-ini.tex | 115 +++++++++++----
 tex/context/base/page-lin.tex |  10 +-
 tex/context/base/page-mar.tex |  16 +--
 tex/context/base/page-mul.tex |  10 +-
 tex/context/base/page-new.tex | 112 +++++++--------
 tex/context/base/page-one.tex |  10 +-
 tex/context/base/page-set.tex |  47 ++-----
 tex/context/base/page-sid.tex |  23 ++-
 tex/context/base/plus-rul.tex | 183 ++++++++++++++++++++++++
 tex/context/base/ppchtex.tex  |  46 +++---
 tex/context/base/regi-grk.tex | 117 ++++++++++++++++
 tex/context/base/regi-ini.tex |  20 ++-
 tex/context/base/regi-mac.tex | 227 +++++++++++++++++-------------
 tex/context/base/setupb.tex   |  40 +++---
 tex/context/base/spec-tpd.tex |   2 +-
 tex/context/base/supp-box.tex |  57 +++++---
 tex/context/base/supp-fun.tex |  34 ++---
 tex/context/base/symb-mvs.tex |   2 +-
 tex/context/base/syst-new.tex |   7 +-
 tex/context/base/type-enc.tex |  61 ++++++++
 tex/context/base/type-map.tex |   4 +
 tex/context/base/x-contml.tex |   4 +-
 tex/context/base/x-res-08.tex |  21 +--
 tex/context/base/x-res-09.tex |  55 ++++----
 tex/context/user/cont-sys.rme |   5 +
 65 files changed, 1835 insertions(+), 883 deletions(-)
 create mode 100644 tex/context/base/enco-grk.tex
 create mode 100644 tex/context/base/m-plus.tex
 create mode 100644 tex/context/base/plus-rul.tex
 create mode 100644 tex/context/base/regi-grk.tex

(limited to 'tex')

diff --git a/tex/context/base/colo-run.tex b/tex/context/base/colo-run.tex
index 1355c9365..2b222328f 100644
--- a/tex/context/base/colo-run.tex
+++ b/tex/context/base/colo-run.tex
@@ -14,7 +14,7 @@
      {\offinterlineskip
       \setuppalet[#1]
       \def\rule
-        {\vrule\!!width3em\!!height\ht\strutbox\!!depth\dp\strutbox}
+        {\vrule\!!width3em\!!height\strutht\!!depth\strutdp}
       \tabskip\zeropoint
       \def\doshowpalet##1%
         {\doifinsetelse\v!nummer{#2}{##1\hskip.5em}{}&
@@ -47,10 +47,10 @@
             \processpalet[#1]\doshowpalet}\cr
          \doifinset\v!naam{#2}{#1\hskip.5em}% 
          \def\doshowpalet##1%
-           {&\color[##1]{\vrule\!!width\!!widtha\!!height\ht\strutbox\!!depth\!!zeropoint}}%
+           {&\color[##1]{\vrule\!!width\!!widtha\!!height\strutht\!!depth\!!zeropoint}}%
          \processpalet[#1]\doshowpalet\crcr
          \def\doshowpalet##1%
-           {&\graycolor[##1]{\vrule\!!width\!!widtha\!!height\!!zeropoint\!!depth\dp\strutbox}}%
+           {&\graycolor[##1]{\vrule\!!width\!!widtha\!!height\!!zeropoint\!!depth\strutdp}}%
          \processpalet[#1]\doshowpalet\crcr
          \doifinset\v!waarde{#2}
            {\def\doshowpalet##1%
@@ -82,14 +82,14 @@
       \setuppalet
       \tabskip\zeropoint
       \def\rule
-        {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
+        {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}
       \def\colorformatseparator{\strut\cr}
       \def\dodoshowgroup##1%
         {\halign
            {\hss####\hss\cr
             \doifinset\v!nummer{#2}{\strut##1}\cr
-            \color[#1:##1]{\vrule\!!width4em\!!height\ht\strutbox\!!depth\!!zeropoint}\cr
-            \graycolor[#1:##1]{\vrule\!!width4em\!!height\!!zeropoint\!!depth\dp\strutbox}\cr
+            \color[#1:##1]{\vrule\!!width4em\!!height\strutht\!!depth\!!zeropoint}\cr
+            \graycolor[#1:##1]{\vrule\!!width4em\!!height\!!zeropoint\!!depth\strutdp}\cr
             \doifinset\v!waarde{#2}{\colorvalue{#1:##1}\strut}\crcr}}
       \def\doshowgroup##1%
         {\doifdefined{\??cr#1:##1}
@@ -110,7 +110,7 @@
       \setuppalet
       \tabskip\zeropoint
       \def\rule
-        {\vrule\!!width2.5em\!!height\ht\strutbox\!!depth\dp\strutbox}
+        {\vrule\!!width2.5em\!!height\strutht\!!depth\strutdp}
       \def\doshowgroup##1%
         {\doifdefined{\??cr#1:##1}
            {\doifinset\v!nummer{#2}{##1\hskip.5em}&
@@ -127,7 +127,7 @@
      \setupcolor[#1]
      \stelwitruimtein[\v!geen]
      \def\rule
-       {\vrule\!!width4em\!!height\ht\strutbox\!!depth\dp\strutbox}
+       {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}
      \def\docommand##1%
        {\hbox 
           {\graycolor[##1]{\rule}\quad
diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex
index d605583bb..56cd4a687 100644
--- a/tex/context/base/cont-fil.tex
+++ b/tex/context/base/cont-fil.tex
@@ -37,6 +37,7 @@
 \definefilesynonym [res-make]        [res-01]
 \definefilesynonym [res-base]        [res-04]
 \definefilesynonym [res-trace]       [res-08]
+\definefilesynonym [res-log]         [res-09]
 
 \definefilesynonym [pre-general]     [pre-00] 
 
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index cdeae1d2f..5438259b6 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -16,6 +16,57 @@
 %D features. 
 
 \unprotect
+
+% startplaats 
+
+\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex!}
+
+\def\removefunnytabulateline
+  {\ifhmode
+     \strut\crcr
+     \TABLEnoalign{\kern-\lineheight}%
+   \fi}
+
+% \def\fulltabulatecontent
+%   {\tabulateheadcontent
+%    \tabulatecontent
+%    \tabulatetailcontent
+%    \removefunnytabulateline}
+
+\newsignal\strutsignal \setfalse\sigstruts
+
+\def\begstrut
+  {\relax\ifcase\strutht\else
+     \ifconditional\sigstruts
+       \noindent\hbox{\strut}%
+       \normalpenalty\@M % \!!tenthousand
+       \normalhskip-\strutsignal
+       \normalhskip\strutsignal
+     \else
+       \strut
+       \normalpenalty\@M % \!!tenthousand
+       \normalhskip\zeropoint
+     \fi
+     \ignorespaces
+   \fi}
+
+\def\endstrut
+  {\relax\ifhmode\ifcase\strutht\else
+     \ifconditional\sigstruts
+       \ifdim\lastskip=\strutsignal 
+         \unskip\unskip\unpenalty\setbox\scratchbox\lastbox
+       \else
+         \normalpenalty\@M % \!!tenthousand
+         \normalhskip\zeropoint
+         \strut
+       \fi
+     \else
+       \removeunwantedspaces
+       \normalpenalty\@M % \!!tenthousand
+       \normalhskip\zeropoint
+       \strut
+     \fi
+   \fi\fi}
 
 \def\showexternalfigured
   {\bgroup
@@ -30,31 +81,26 @@
    \immediate\closeout\scratchwrite
    \egroup}
 
-\def\setsidefloatparagraph
-  {%\advance\sidefloatprogress \sidefloatbottomskip
-   %\!!counta\sidefloatprogress
-\scratchdimen\sidefloatprogress
-\advance\scratchdimen \ht\strutbox
-\advance\scratchdimen -10sp % new, needed in prikkels, prevent rounding errors 
-\!!counta\scratchdimen
-   \divide\!!counta \baselineskip
-   \ifnum\!!counta>0
-     \hangindent \ifrightfloat-\fi\sidefloatwidth
-     \hangafter-\!!counta
-   \fi
-   \global\advance\sidefloatparagraph \plusone
-   \iftracesidefloats
-     \hskip-\sidefloatwidth
-     \color[darkgray]%
-       {\vrule\!!height.5\s!pt\!!depth.5\s!pt\!!width\sidefloatwidth
-       %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
-        \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
-   \fi}
+% between alignment lines certain rules apply, and even a 
+% simple test can mess up a table, which is why we have a 
+% special test facility 
+% 
+% \ruledvbox
+%   {\starttabulate[|l|p|]
+%    \NC 1test \NC test \NC \NR 
+%    \tableifelse{\doifelse{a}{a}}{\NC Xtest \NC test \NC \NR}{}%
+%    \stoptabulate}
 
+\long \def\tableifelse#1%
+  {\TABLEnoalign{#1%
+     {\aftergroup \firstoftwoarguments}%
+     {\aftergroup\secondoftwoarguments}}}
 
+% \long \def\tableif#1% whow, this is real ugly 
+%   {\TABLEnoalign{\let\gnext\gobbleoneargument#1%
+%      {\let\gnext\firstofoneargument}}\gnext}
 
-
-\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex!}
+\long \def\tableiftextelse#1{\tableifelse{\doiftextelse{#1}}}
 
 \def\ejectinsert
   {\flushnotes
@@ -760,7 +806,7 @@
       \setbox\columnspanbox\hbox % depth to be checked, probably option!
         {\localframed[\??ks][\c!offset=\v!overlay]{\box\columnspanbox}}%
       \ht\columnspanbox\scratchdimen
-      \dp\columnspanbox\dp\strutbox
+      \dp\columnspanbox\strutdp
       \wd\columnspanbox\hsize
       \ifbinnenkolommen
         \ifnum\@@ksn>1
@@ -784,7 +830,7 @@
         \snaptogrid\vbox{\box\columnspanbox}
       \fi
       \endgraf
-      \prevdepth\dp\strutbox
+      \prevdepth\strutdp
       \egroup}
      \vbox\bgroup
       %\topskipcorrection % becomes an option !
diff --git a/tex/context/base/cont-sys.ori b/tex/context/base/cont-sys.ori
index 755101e4e..55d304913 100644
--- a/tex/context/base/cont-sys.ori
+++ b/tex/context/base/cont-sys.ori
@@ -13,6 +13,11 @@
 
 \unprotect
 
+% If you want some extras, just uncomment the following 
+% line:
+%
+% \usemodule[plus]
+%
 % Here you can take care of overloading some (style) 
 % defaults. What goes here, depends on your local system. 
 %
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index f10dee3f5..49973594c 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -15,7 +15,7 @@
 
 \catcode`\{=1 \catcode`\}=2 
 
-\def\contextversion{2003.3.4}
+\def\contextversion{2003.3.17}
 
 %D Welcome to the main module. When this module is ran through
 %D \type{initex} or \type{tex -i} or \type{whatevertex} using
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
index 5633bb069..96578ee45 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -131,8 +131,8 @@
 
 % more accurate 
 %
-% \@EA\convertcommand\csname\e!start\e!buffer\endcsname\to\beginofblock % else a space
-% \@EA\convertcommand\csname\e!stop\e!buffer \endcsname\to\endofblock
+% \@EA\convertcommand\csname\e!start\v!buffer\endcsname\to\beginofblock % else a space
+% \@EA\convertcommand\csname\e!stop\v!buffer \endcsname\to\endofblock
 
 \def\resetbuffer
   {\dosingleempty\doresetbuffer}
@@ -206,9 +206,9 @@
      {\doifnumberelse{\getvalue{\??bu#1\c!alinea}} 
         \segmentatebuffertrue\segmentatebufferfalse}%
    \doifelse{#4}{}
-     {\letbeundefined{\e!stop\e!buffer}% % \let\stopbuffer=\relax   % \undefined
-      \@EA\@EA\@EA\convertargument\@EA\e!start\e!buffer\to\beginofblock % else a space
-      \@EA\@EA\@EA\convertargument\@EA\e!stop\e!buffer\to\endofblock
+     {\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax   % \undefined
+      \@EA\@EA\@EA\convertargument\@EA\e!start\v!buffer\to\beginofblock % else a space
+      \@EA\@EA\@EA\convertargument\@EA\e!stop\v!buffer\to\endofblock
       \let\processnextblockline\processnextbufferline}
      {\letbeundefined{#4}% \letvalue{#4}=\relax     % \undefined
       \@EA\convertargument\csname#3\endcsname\to\beginofblock
@@ -233,7 +233,7 @@
    \let\writeoutblocks\gobbleoneargument
    \copyblockline}
 
-\letvalue{\e!start\e!buffer}\dostartbuffer
+\letvalue{\e!start\v!buffer}\dostartbuffer
 
 % \setbuffer[name]#2\endbuffer : saves to file #1.tmp
 
@@ -1014,9 +1014,9 @@
 
 % the buffer mechanism handles nesting, add some switch
 
-\setvalue{\e!start\e!verbergen}%
+\setvalue{\e!start\v!verbergen}%
   {\dostartbuffer[buf-\nofpostponedblocks]
-     [\e!start\e!verbergen][\e!stop\e!verbergen]}
+     [\e!start\v!verbergen][\e!stop\v!verbergen]}
 
 \stelbufferin
   [\c!alinea=\v!nee,
diff --git a/tex/context/base/core-des.tex b/tex/context/base/core-des.tex
index 676209341..4a5c26c1c 100644
--- a/tex/context/base/core-des.tex
+++ b/tex/context/base/core-des.tex
@@ -44,7 +44,7 @@
      {\??dd#1}\c!kopletter\c!kopkleur
      {\getvalue{\??dd#1\c!commando}% NAAR BUITENSTE NIVEAU !
         {\begstrut\getvalue{\??dd#1\c!tekst}#4\endstrut}}%
-   \rawreference{\s!def}{#2}{#3}}
+   \rawreference\s!def{#2}{#3}}
 
 \setvalue{@@definitie\v!links}#1%
   {\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang}
@@ -99,15 +99,15 @@
       \rightskip\zeropoint
       #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]%
       \unhcopy\@@definitiebox}%
-   \ht\@@definitiebox\ht\strutbox
-   \dp\@@definitiebox\dp\strutbox}
+   \ht\@@definitiebox\strutht
+   \dp\@@definitiebox\strutdp}
 
 \def\@@definitielinkshang#1[#2]#3%
   {\@@dostartdefinitie{#1}[#2]{#3}%
    \mindermeldingen
    \advance\!!widtha \!!widthb
    \hangindent\!!widtha
-   \@@makedefinitiehangbox{#1}{\raggedright}{\advance\rightskip \!!widthb}%
+   \@@makedefinitiehangbox{#1}\raggedright{\advance\rightskip \!!widthb}%
    \noindent\ignorespaces
    \llap
      {\dontshowcomposition
@@ -119,7 +119,7 @@
    \mindermeldingen
    \advance\!!widtha \!!widthb
    \hangindent-\!!widtha
-   \@@makedefinitiehangbox{#1}{\raggedleft}{\advance\leftskip \!!widthb}%
+   \@@makedefinitiehangbox{#1}\raggedleft{\advance\leftskip \!!widthb}%
    \noindent\ignorespaces
    \rlap
      {\mindermeldingen
@@ -138,13 +138,13 @@
       \hsize\!!widtha
       #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]#3%
       \unhcopy\@@definitiebox}%
-   \ht\@@definitiebox\ht\strutbox
-   \dp\@@definitiebox\dp\strutbox
+   \ht\@@definitiebox\strutht
+   \dp\@@definitiebox\strutdp
    \doifinsetelse{\getvalue{\??dd#1\c!hang}}{\v!passend,\v!ruim}
      {\dimen0=\ht\@@definitiebox
       \advance\dimen0 \dp\@@definitiebox
       \doifvalue{\??dd#1\c!hang}\v!ruim
-        {\advance\dimen0 .5\ht\strutbox}%
+        {\advance\dimen0 .5\strutht}%
       \getnoflines{\dimen0}%
       \hangafter-\noflines}
      {\hangafter-\getvalue{\??dd#1\c!hang}}}%
@@ -289,7 +289,7 @@
    \endgroup
    \getvalue{\??dd#1\c!na}%
    \egroup % temporary hack
-   \doifvalue{\??dd#1\c!springvolgendein}\v!nee\noindentation}
+   \dochecknextindentation{\??dd#1}}
 
 \def\@@dodefinitie#1%
   {\dostartattributes{\??dd#1}\c!letter\c!kleur\empty
@@ -348,7 +348,6 @@
    \setvalue{\e!stop#1}%
      {\@@stopdefinitie{#1}}}%
 
-
 \def\@@startdefinitie[#1][#2]%
   {\doifelsevalue{\??dd#1\s!do\c!status}\v!start
      {\@@startsomedefinitie{#1}[#2]{}}
@@ -405,11 +404,11 @@
 \def\special@@definitiewoord#1#2#3#4[#5]#6#7%
   {\strut
    \doifelsevalue{\??dd#1\c!nummer}\v!nee
-     {\!!doneafalse}
+     \!!doneafalse
      {\doifelse{#5}{-}
-        {\!!doneafalse}
-        {\!!doneatrue}}%
-   \chardef\definitiekoppeling0
+        \!!doneafalse
+        \!!doneatrue}%
+   \chardef\definitiekoppeling\zerocount
    \iflocation
      \doifvaluesomething{\??dd#1\c!koppeling}
        {\processaction % genereert > of <
@@ -430,10 +429,10 @@
        \preparethenumber{\??dd#1}\voorafgaandenummer\preparednumber
        \ifcase\definitiekoppeling \or
          \xdef\internaldoornummer{#3{#1}}%
-         \rawreference{\s!num}{#1:\internaldoornummer}{}%
+         \rawreference\s!num{#1:\internaldoornummer}{}%
        \or
          \xdef\internaldoornummer{\countervalue{\??dd\c!koppeling#1}}%
-         \rawreference{\s!num}{#1:\internaldoornummer}{}%
+         \rawreference\s!num{#1:\internaldoornummer}{}%
        \fi
        \egroup
      \fi
@@ -448,16 +447,16 @@
               \domakednnummer{#1}{#2}{#3}}}%
         \iflocation\ifcase\definitiekoppeling \else
           \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
-          \doifreferencefoundelse{\localconnection}
+          \doifreferencefoundelse\localconnection
             {\in[\localconnection]}{}% genereert > of <
         \fi\fi}%
-     \doifnot{#5}{-}{\rawreference{\s!num}{#5}{#3{#1}}}%
+     \doifnot{#5}{-}{\rawreference\s!num{#5}{#3{#1}}}%
    \else % Why was this strange expansion needed? 
      \hbox
        {\edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
         \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
           {\noexpand\getvalue{\??dd#1\c!commando}{\!!stringa}}}%
-        \doifnot{#5}{-}{\rawreference{\s!num}{#5}{}}}%
+        \doifnot{#5}{-}{\rawreference\s!num{#5}{}}}%
    \fi}
 
 \def\@@ddsetsubsubsubnummer#1%
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index 11eb2a8e6..2a98f6814 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -1505,6 +1505,9 @@
 \def\useexternalfigure
   {\doquadrupleempty\douseexternalfigure}
 
+\unexpanded\def\externalfigure
+  {\dotripleempty\doexternalfigure}
+
 \def\doexternalfigure[#1][#2][#3]%
   {\bgroup
    \doifelsenothing{#1}
@@ -1513,10 +1516,16 @@
         {\useexternalfigure[\s!dummy][#1][#2][#3]%
          \getexternalfigure{\s!dummy}[#3]}
         {\getexternalfigure{#1}[#2]}}%
+   \globallet\currentresourcecomment\empty
    \egroup}
 
-\unexpanded\def\externalfigure%
-  {\dotripleempty\doexternalfigure}
+\long\def\resourcecomment#1%
+  {\long\gdef\currentresourcecomment{#1}}
+
+\long\def\startresourcecomment#1\stopresourcecomment
+  {\long\gdef\currentresourcecomment{#1}}
+
+\let\currentresourcecomment\empty
 
 %D Two alternatives, more settings needed.
 
diff --git a/tex/context/base/core-fld.tex b/tex/context/base/core-fld.tex
index a0138a552..9bdc263a1 100644
--- a/tex/context/base/core-fld.tex
+++ b/tex/context/base/core-fld.tex
@@ -945,7 +945,7 @@
        \lower2ex\hbox to \zeropoint
          {\fitfield[\currentsystemfield:but]}%
       #2}%
-  \ht0=\ht\strutbox\dp0=\dp\strutbox\box0
+  \ht0\strutht\dp0\strutdp\box0
   \egroup}
 
 %D And one more: 
diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex
index 9bd68420a..c51f07103 100644
--- a/tex/context/base/core-fnt.tex
+++ b/tex/context/base/core-fnt.tex
@@ -476,9 +476,9 @@
    \dimen0=\underbarlevel\dimen0
    \ifdone \else
     %\advance\dimen0 -1pt 
-     \advance\dimen0 -\ht\strutbox 
+     \advance\dimen0 -\strutht
    \fi
-   \dimen2=\dimen0
+   \dimen2\dimen0
    \advance\dimen2 \@@onlijndikte
    \dododounderbar{-\dimen0}{\dimen2}{#1}%
    \egroup}
diff --git a/tex/context/base/core-grd.tex b/tex/context/base/core-grd.tex
index 8bf85846c..5d3644bdd 100644
--- a/tex/context/base/core-grd.tex
+++ b/tex/context/base/core-grd.tex
@@ -98,11 +98,11 @@
 \ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi 
       \setbox0\null
       \wd0\hsize
-      \dp0\dp\strutbox
+      \dp0\strutdp
       \nointerlineskip
       \ruledvbox{\box0}%
       \egroup
-      \prevdepth\dp\strutbox}%
+      \prevdepth\strutdp}%
    \def\dotopbaselinecorrection
      {\hrule\!!height\thetopbaselinecorrection}%
    \def\dobotbaselinecorrection
@@ -110,15 +110,15 @@
 
 \def\dobaselinecorrection
   {\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi
-   \kern\dp\strutbox
-   \prevdepth\dp\strutbox}
+   \kern\strutdp
+   \prevdepth\strutdp}
 
 \def\baselinecorrection
   {\endgraf
    \ifvmode
      \ifdim\prevdepth<\maxdimen
        \ifdim\prevdepth<\zeropoint \else
-         \ifdim\prevdepth<\dp\strutbox
+         \ifdim\prevdepth<\strutdp
            \dobaselinecorrection
          \fi
        \fi
@@ -136,7 +136,6 @@
      \fi 
    \fi}
 
-
 % Beware, keep this one as it is, see for instance module
 % m-steps.tex, where we apply a \localhsize to the \vbox, in
 % order to follow narrower and side floats !
@@ -235,7 +234,7 @@
      \setbaselinecorrections
      \dobotbaselinecorrection
      \allowbreak % new, otherwise problems when many in a row
-     \prevdepth\dp\strutbox
+     \prevdepth\strutdp
      \egroup
    \fi}
 
@@ -367,7 +366,7 @@
 %             \forcepresnaptrue
 %           \fi
 %           \forcedpresnapcorrection
-%           \ifdim\nextboxht>\ht\strutbox
+%           \ifdim\nextboxht>\strutht
 %             \scratchdimen\nextboxht
 %             \ifcase\@@presnap\relax
 %               \ifdim\scratchskip>\zeropoint\relax
@@ -411,7 +410,7 @@
 %               \vskip\scratchdimen
 %             \fi \fi
 %           \fi
-%           \ifdim\nextboxdp>\dp\strutbox
+%           \ifdim\nextboxdp>\strutdp
 %             \getnoflines{\nextboxdp}%
 %             \advance\noflines -1
 %             \ifnum\noflines>0
@@ -426,14 +425,14 @@
 %           \ifnum\@@extrasnap=3 \advance\scratchdimen \extrasnapsign\lineheight \fi
 %           \edef\postsnap{\the\scratchdimen}%
 %           \ifstrutsnapping
-%             \nextboxht\ht\strutbox
-%             \nextboxdp\dp\strutbox
+%             \nextboxht\strutht
+%             \nextboxdp\strutdp
 %           \else
 %             \scratchdimen\presnap
-%             \advance\scratchdimen \ht\strutbox
+%             \advance\scratchdimen \strutht
 %             \nextboxht\scratchdimen
 %             \scratchdimen\postsnap
-%             \advance\scratchdimen \dp\strutbox
+%             \advance\scratchdimen \strutdp
 %             \nextboxdp\scratchdimen
 %           \fi
 %           \hbox{\tracedsnapping\flushnextbox}%
@@ -462,7 +461,7 @@
 %           \ifshowgridboxes
 %             \setbox\nextbox\hbox{\color[grid:two]{\ruledhbox{\black\flushnextbox}}}%
 %           \fi
-%           \nextboxdp\dp\strutbox
+%           \nextboxdp\strutdp
 %           \dimen4=\nextboxht
 %           \dimen6=\nextboxdp
 %           \setbox\nextbox\vbox to \scratchdimen
@@ -568,7 +567,7 @@
             \forcepresnaptrue
           \fi
           \forcedpresnapcorrection
-          \ifdim\nextboxht>\ht\strutbox
+          \ifdim\nextboxht>\strutht
             \scratchdimen\nextboxht
             \ifcase\@@presnap\relax
               \ifdim\scratchskip>\zeropoint\relax
@@ -612,7 +611,7 @@
               \vskip\scratchdimen
             \fi \fi
           \fi
-          \ifdim\nextboxdp>\dp\strutbox
+          \ifdim\nextboxdp>\strutdp
             \getnoflines{\nextboxdp}%
             \advance\noflines -1
             \ifnum\noflines>0
@@ -627,14 +626,14 @@
           \ifnum\@@extrasnap=3 \advance\scratchdimen \extrasnapsign\lineheight \fi
           \edef\postsnap{\the\scratchdimen}%
           \ifstrutsnapping
-            \nextboxht\ht\strutbox
-            \nextboxdp\dp\strutbox
+            \nextboxht\strutht
+            \nextboxdp\strutdp
           \else
             \scratchdimen\presnap
-            \advance\scratchdimen \ht\strutbox
+            \advance\scratchdimen \strutht
             \nextboxht\scratchdimen
             \scratchdimen\postsnap
-            \advance\scratchdimen \dp\strutbox
+            \advance\scratchdimen \strutdp
             \nextboxdp\scratchdimen
           \fi
           \hbox{\tracedsnapping\flushnextbox}%
@@ -662,7 +661,7 @@
           \ifshowgridboxes
             \setbox\nextbox\hbox{\color[grid:two]{\ruledhbox{\black\flushnextbox}}}%
           \fi
-          \nextboxdp\dp\strutbox
+          \nextboxdp\strutdp
           \dimen4=\nextboxht
           \dimen6=\nextboxdp
           \iftracegridsnapping
@@ -757,7 +756,7 @@
   {\ifgridsnapping
      \dowithnextbox
        {\scratchdimen\nextboxht
-        \advance\scratchdimen -\ht\strutbox
+        \advance\scratchdimen -\strutht
         \advance\scratchdimen \topskip
         \nextboxht\scratchdimen
         \nextboxdp\zeropoint
@@ -782,7 +781,7 @@
 %           {\forgetall
 %            \vskip\zeropoint \!!plus \nextboxht
 %            \copy\nextbox
-%            \kern.5\dp\strutbox % VOORLOPIGE WAARDE
+%            \kern.5\strutdp % VOORLOPIGE WAARDE
 %            \vskip\zeropoint \!!plus \nextboxdp}
 %         \noindent\snaptogrid\vbox{\flushnextbox}%
 %         \egroup}
@@ -793,7 +792,7 @@
 % options, will be configurable some day ... 
 
 \def\centertogrid % usage: see ie pascal / stepcharts 
-  {\snaptogrid[\v!midden,.5\dp\strutbox]\vbox} 
+  {\snaptogrid[\v!midden,.5\strutdp]\vbox} 
 
 \ifx\startbaselinecorrection\undefined \wait \fi % change order
 
@@ -817,7 +816,7 @@
       \ruledvbox % calculated size 
         {\getrawnoflines{#3}% \getnoflines{#3}%
          \vskip\topskip
-         \vskip-\ht\strutbox
+         \vskip-\strutht
          \scratchdimen#2\advance\scratchdimen \lineheight
          \dorecurse\noflines
            {\strut
diff --git a/tex/context/base/core-hlp.tex b/tex/context/base/core-hlp.tex
index 90503bf30..198a5e09a 100644
--- a/tex/context/base/core-hlp.tex
+++ b/tex/context/base/core-hlp.tex
@@ -24,10 +24,10 @@
 \unprotect 
 
 \defineframedtext
-  [\e!helptext]
+  [\v!helptext]
 
 \setupframedtexts
-  [\e!helptext]
+  [\v!helptext]
   [\c!breedte=.75\tekstbreedte,
    \c!uitlijnen=\v!normaal,
    \c!kader=\v!uit,
@@ -87,33 +87,36 @@
         {\nofhelpdataentries}%
         {#1}}}
 
-\setvalue{\e!start\e!helptext}[#1]%
+\setvalue{\e!start\v!helptext}[#1]%
   {\iflocation
      \global\settrue\somehelpdatadefined
-     \setvalue{\e!stop\e!helptext}%
-      %{\definesymbol[helpinfo:#1][\getvalue\e!helptext{\getbuffer[\e!helptext]}]%
-       {\definesymbol[helpinfo:#1][{\doframedtext[\e!helptext]{\getbuffer[\e!helptext]}}]%
-        \dopresetfieldsymbol{helpinfo:#1}}%
+     \setvalue{\e!stop\v!helptext}%
+      %{\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
+      % \dopresetfieldsymbol{helpinfo:#1}}%
+       {\definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
+        \dopresetfieldsymbol{\v!helptext:#1}}%
    \else
-     \letvalue{\e!stop\e!helptext}\relax
+     \letvalue{\e!stop\v!helptext}\relax
    \fi
-   \dostartbuffer[\e!helptext][\e!start\e!helptext][\e!stop\e!helptext]}
+   \dostartbuffer[\v!helptext][\e!start\v!helptext][\e!stop\v!helptext]}
 
 \long\def\helptext[#1]#2% 
   {\iflocation
      \global\settrue\somehelpdatadefined
-    %\definesymbol[helpinfo:#1][\getvalue\e!helptext{#2}]%
-     \definesymbol[helpinfo:#1][{\doframedtext[\e!helptext]{#2}}]%
-     \dopresetfieldsymbol{helpinfo:#1}%
+    %\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{#2}}]%
+    %\dopresetfieldsymbol{helpinfo:#1}%
+     \definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{#2}}]%
+     \dopresetfieldsymbol{\v!helptext:#1}%
    \fi}
 
 \let\definehelptext\helptext % for backward compabilities sake 
 
 \def\dohelpdata#1%
-  {\setbox0=\hbox
+  {\setbox0\hbox
      {\startoverlay
         {\box0}
-        {\definemainfield[help:#1][check][helpsetup][helpinfo:#1][helpinfo:#1]%
+       %{\definemainfield[help:#1][check][helpsetup][helpinfo:#1][helpinfo:#1]%
+        {\definemainfield[help:#1][check][helpsetup][\v!helptext:#1][\v!helptext:#1]%
          \fitfield[help:#1]}
       \stopoverlay}}
 
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index 666786674..5020c5add 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -1115,7 +1115,7 @@
 \setvalue{\??am\??am\v!geen}{3}
 \setvalue{\??am\??am       }{1} % default
 
-\processbetween{\e!interactiemenu}\dostartinteractiemenu
+\processbetween{\v!interactiemenu}\dostartinteractiemenu
 
 \def\dostartinteractiemenu#1%
   {\dodostartinteractiemenu#1\dodostopinteractiemenu}
@@ -2112,7 +2112,7 @@
 \newbox\commentbox
 
 \def\doflushcommentanchors
-   {\inmarge{\hbox{\raise\ht\strutbox\box\commentbox}}}
+   {\inmarge{\hbox{\raise\strutht\box\commentbox}}}
 
 \def\flushcommentanchors % in everypar so indirect
   {\ifvoid\commentbox\else \doflushcommentanchors \fi}
@@ -2120,7 +2120,7 @@
 \def\stelcommentaarin
   {\dodoubleargument\getparameters[\??cc]}
 
-\setvalue{\e!start\e!commentaar}% the dummy triple gobbles trailing spaces
+\setvalue{\e!start\v!commentaar}% the dummy triple gobbles trailing spaces
   {\dotripleempty\dostartcommentaar}
 
 \def\commentaar
@@ -2157,14 +2157,14 @@
          \egroup}}%
      {\long\def\docommando##1%
         {\egroup}}%
-   \grabuntil{\e!stop\e!commentaar}\docommando}
+   \grabuntil{\e!stop\v!commentaar}\docommando}
 
 \def\docommentaar[#1][#2]#3%
   {\doif\@@ccstatus\v!start
      {\hbox to \zeropoint
         {\dopreparecommentaar{#1}{#2}%
          \hskip-\@@ccmarge
-         \raise\ht\strutbox\hbox{\dodocommentaar{#3}}}}%
+         \raise\strutht\hbox{\dodocommentaar{#3}}}}%
    \ignorespaces}
 
 % \startcommentaar
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index 0d7865cf8..445b634d4 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -578,7 +578,7 @@
      \ifnum\itemlevel=\plusone
        \doitembreak\allowbreak           % toegevoegd
        \getitemparameter1\c!na
-       \doif\@@oospringvolgendein\v!nee\noindentation
+       \dochecknextindentation\??oo
      \fi
    \fi
    \endgroup
@@ -888,12 +888,12 @@
 % efficient default itemize as well as upward compatible 
 % definition: 
 
-\defineitemgroup [\e!itemize] [\c!niveaus=6]
+\defineitemgroup [\v!itemize] [\c!niveaus=6]
 
 % keep these, needed for styles: 
 
-% \def\startitemize {\startitemgroup[]} 
+% \def\startitemize {\startitemgroup[\v!itemize]} 
 % \def\stopitemize  {\stopitemgroup}
-% \def\setupitemize {\setupitemgroup[]}
+% \def\setupitemize {\setupitemgroup[\v!itemize]} 
 
 \protect \endinput
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index 8d4e1dbb6..b6ae082e0 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -355,8 +355,8 @@
        {\currentproject,\currentproduct,%
         \currentcomponent,\currentenvironment}
        {\loadedlocalenvironments}
-     {\letvalue{\e!stop\e!deelomgeving}\relax}
-     {\grabuntil{\e!stop\e!deelomgeving}\relax}}
+     {\letvalue{\e!stop\v!deelomgeving}\relax}
+     {\grabuntil{\e!stop\v!deelomgeving}\relax}}
 
 \def\startproduct{\startprodukt}
 \def\stopproduct {\stopprodukt}
@@ -386,13 +386,13 @@
 \def\doifsetupselse#1%
   {\doifdefinedelse{\??su#1}}
 
-\long\@EA\def\csname\e!start\e!instellingen\endcsname#1 %
+\long\@EA\def\csname\e!start\v!instellingen\endcsname#1 %
   {\bgroup
    \catcode`\^^M=\@@ignore
    \xdostartsetups{#1}}
 
 \expanded
-  {\long\noexpand\def\noexpand\xdostartsetups##1##2\csname\e!stop\e!instellingen\endcsname%
+  {\long\noexpand\def\noexpand\xdostartsetups##1##2\csname\e!stop\v!instellingen\endcsname%
      {\egroup
       \long\noexpand\setvalue{\??su##1}{##2}}}
 
diff --git a/tex/context/base/core-ltb.tex b/tex/context/base/core-ltb.tex
index 1dfcdffc9..bdb81d4f5 100644
--- a/tex/context/base/core-ltb.tex
+++ b/tex/context/base/core-ltb.tex
@@ -171,9 +171,9 @@
       \else
         \scratchdimen\teksthoogte
       \fi
-      \advance\scratchdimen -\dp\strutbox
+      \advance\scratchdimen -\strutdp
       \ifdim\prevdepth<\maxdimen\ifdim\prevdepth>\zeropoint
-        \global\advance\scratchdimen -\dp\strutbox
+        \global\advance\scratchdimen -\strutdp
         \global\advance\scratchdimen -\parskip
       \fi\fi
       \getrawnoflines\scratchdimen 
diff --git a/tex/context/base/core-mak.tex b/tex/context/base/core-mak.tex
index e8c75c9c1..d258ad9ec 100644
--- a/tex/context/base/core-mak.tex
+++ b/tex/context/base/core-mak.tex
@@ -21,7 +21,7 @@
 % - still undocumented and also not in setupb yet
 % - kan ook intern/direct (scheelt duplicatie), zie \framedtext
 
-\def\dodefinieerplaats[#1][#2]%
+\def\dodefineplacement[#1][#2]%
   {\getparameters 
      [\??pl#1]
      [\c!links=\hss,
@@ -29,31 +29,71 @@
       \c!regelcorrectie=\v!uit,
       \c!dieptecorrectie=\v!uit,
       \c!marge=\v!standaard,
+      \c!grid=\v!midden,
       %\c!voor=,
       %\c!na=, 
      #2]%
-   \setvalue{\e!plaats#1}{\doplaats[\??pl#1]}}
+   \setvalue{\e!plaats#1}{\doplacement[\??pl#1]}}
 
-\def\definieerplaats
-  {\dodoubleempty\dodefinieerplaats}
+\def\defineplacement
+  {\dodoubleempty\dodefineplacement}
 
-\def\doplaats
-  {\dodoubleempty\dodoplaats}
+\def\setupplacement
+  {\dodoubleempty\dosetupplacement}
 
-\def\dodoplaats[#1][#2]% correctie moet mooier 
+\def\dosetupplacement[#1]%
+  {\dodoubleempty\getparameters[\??pl#1]}
+
+\def\doplacement
+  {\dodoubleempty\dodoplacement}
+
+% \def\dodoplacement[#1][#2]% correctie moet mooier 
+%   {\bgroup 
+%    \dowithnextbox
+%      {\setlocalhsize
+%       \getparameters[#1][#2]%
+%       \getvalue{#1\c!voor}%
+%       \doifvalue{#1\c!regelcorrectie}\v!aan \startbaselinecorrection
+%       \doifinset{\getvalue{#1\c!marge}}{\v!standaard,\v!ja}\noindent
+%       \hbox to \localhsize
+%         {\getvalue{#1\c!links}%
+%          \flushnextbox
+%          \getvalue{#1\c!rechts}}%
+%       \doifvalue{#1\c!dieptecorrectie}\v!aan\baselinecorrection
+%       \doifvalue{#1\c!regelcorrectie }\v!aan\stopbaselinecorrection
+%       \getvalue{#1\c!na}%
+%       \egroup}
+%    \vbox}
+
+\def\dodoplacement[#1][#2]% correctie moet mooier 
   {\bgroup 
-   \dowithnextbox
+   \dowithnextboxcontent
+     {\forgetall}
      {\setlocalhsize
       \getparameters[#1][#2]%
       \getvalue{#1\c!voor}%
-      \doifvalue{#1\c!regelcorrectie}\v!aan \startbaselinecorrection
-      \doifinset{\getvalue{#1\c!marge}}{\v!standaard,\v!ja}\noindent
-      \hbox to \localhsize
+      \begingroup
+      \positioningparfalse
+      \setbox\nextbox\hbox to \localhsize
         {\getvalue{#1\c!links}%
          \flushnextbox
          \getvalue{#1\c!rechts}}%
-      \doifvalue{#1\c!dieptecorrectie}\v!aan\baselinecorrection
-      \doifvalue{#1\c!regelcorrectie }\v!aan\stopbaselinecorrection
+      \ifinsidefloat \else
+        \addlocalbackgroundtobox\nextbox
+      \fi 
+      \ifgridsnapping 
+        \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!midden}%
+        % unchecked 
+        \doifinset{\getvalue{#1\c!marge}}{\v!standaard,\v!ja}\noindent
+        \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}%
+      \else
+        \doifvalue{#1\c!regelcorrectie}\v!aan \startbaselinecorrection
+        \doifinset{\getvalue{#1\c!marge}}{\v!standaard,\v!ja}\noindent
+        \flushnextbox
+        \doifvalue{#1\c!dieptecorrectie}\v!aan\baselinecorrection
+        \doifvalue{#1\c!regelcorrectie }\v!aan\stopbaselinecorrection
+      \fi 
+      \endgroup
       \getvalue{#1\c!na}%
       \egroup}
    \vbox}
diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex
index b9517053c..b70fc9a3d 100644
--- a/tex/context/base/core-mat.tex
+++ b/tex/context/base/core-mat.tex
@@ -163,8 +163,8 @@
 \def\doformulenummer
   {\dotripleempty\dodoformulenummer}
 
-\setvalue{\e!start\e!formule}{\dostartformula{}}
-\setvalue{\e!stop \e!formule}{\dostopformula}
+\setvalue{\e!start\v!formule}{\dostartformula{}}
+\setvalue{\e!stop \v!formule}{\dostopformula}
 
 \def\definieerformule%
   {\dodoubleempty\dodefinieerformule}
@@ -178,8 +178,8 @@
          \c!springvolgendein,\c!variant,
          \c!strut,\c!uitlijnen,\c!afstand]%
       \setupformulas[#1][#2]%
-      \setvalue{\e!start#1\e!formule}{\dostartformula{#1}}%
-      \setvalue{\e!stop #1\e!formule}{\dostopformula}}}
+      \setvalue{\e!start#1\v!formule}{\dostartformula{#1}}%
+      \setvalue{\e!stop #1\v!formule}{\dostopformula}}}
 
 \def\setupformulas
   {\dodoubleempty\dosetupformulas}
@@ -272,16 +272,16 @@
    \let\setdisplayskips\relax
    \ifoptimizedisplayspacing
      \ifdim\lastlinewidth>\zeropoint
-       \abovedisplayshortskip-\ht\strutbox\relax
+       \abovedisplayshortskip-\strutht\relax
      \fi
    \else
      \resetlastlinewidth
    \fi
-   \getvalue{\e!start\getvalue{\??fm\currentformula\c!variant}\e!formule}}
+   \getvalue{\e!start\getvalue{\??fm\currentformula\c!variant}\v!formule}}
 
 \def\switchtoformulabodyfont{\switchtobodyfont}
 
-\setvalue{\e!formule}{\dosingleempty\doformula}
+\setvalue{\v!formule}{\dosingleempty\doformula}
 
 \def\doformula[#1]#2%
   {\begingroup
@@ -294,10 +294,10 @@
 
 \def\dostopformula
   {\doplaceformulanumber
-   \getvalue{\e!stop\getvalue{\??fm\currentformula\c!variant}\e!formule}%
+   \getvalue{\e!stop\getvalue{\??fm\currentformula\c!variant}\v!formule}%
     \resetlastlinewidth
     \nonoindentation
-    \doifvalue{\??fm\currentformula\c!springvolgendein}\v!nee\noindentation
+    \dochecknextindentation{\??fm\currentformula}%
     \egroup}
 
 \newif\ifinformula
@@ -382,8 +382,8 @@
   {\dotripleargument\dodefineformulaalternative}
 
 \def\dodefineformulaalternative[#1][#2][#3]%  
-  {\setvalue{\e!start#1\e!formule}{#2}%
-   \setvalue{\e!stop #1\e!formule}{#3}}
+  {\setvalue{\e!start#1\v!formule}{#2}%
+   \setvalue{\e!stop #1\v!formule}{#3}}
 
 \defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
 
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index 2d86723fd..3478d2004 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -539,7 +539,7 @@
 \def\doorsnede
   {\hbox{\rlap/$\circ$} }
 
-\def\punten
+\unexpanded\def\punten
   {\dosingleempty\dopunten}
 
 \def\dopunten[#1]%
@@ -547,12 +547,12 @@
    \hbox to \iffirstargument#1\else5\fi \scratchdimen
      {\leaders\hbox to \scratchdimen{\hss.\hss}\hss}}
 
-\def\ongeveer
+\unexpanded\def\ongeveer
   {\mathematics\pm}
 
 % for compatibility
 
-\def\unknown
+\unexpanded\def\unknown
   {\dontleavehmode\punten[3]}
 
 \def\leftboundarycharacter#1#2%
@@ -889,7 +889,7 @@
       \let\dodostopdelimitedtextpar\endgraf}
      {\startsmaller[#1]\let\dodostopdelimitedtextpar\stopsmaller}%
    % so far 
-   \doif{\delimitedtextparameter\c!springvolgendein}\v!nee\noindentation
+   \dochecknextindentation{\??ci\currentdelimitedtext}%
    \dostartattributes{\??ci\currentdelimitedtext}\c!letter\c!kleur\empty
    \leftdelimitedtextmark
    \doglobal\incrementvalue{\??ci\currentdelimitedtext\c!niveau}%
@@ -1372,23 +1372,23 @@
 \stopmessages
 
 \definetabulate
-  [\e!legenda]
+  [\v!legenda]
   [|emj1|i1|mR|]
 
 \setuptabulate
-  [\e!legenda]
+  [\v!legenda]
   [\c!eenheid=.75em,\c!binnen=\setquicktabulate\leg,EQ={=}]
 
 \definetabulate
-  [\e!legenda][\v!twee]
+  [\v!legenda][\v!twee]
   [|emj1|emk1|i1|mR|]
 
 \definetabulate
-  [\e!gegeven]
+  [\v!gegeven]
   [|R|ecmj1|i1mR|]
 
 \setuptabulate
-  [\e!gegeven]
+  [\v!gegeven]
   [\c!eenheid=.75em,\c!binnen=\setquicktabulate\geg,EQ={=}]
 
 \unexpanded\def\xbox
@@ -1759,7 +1759,7 @@
       \box#1\relax
       \ifcase\pairedlocationb\hss\or\or\or\or\hss\fi}}
 
-\definepairedbox[\e!legenda]
+\definepairedbox[\v!legenda]
 
 %D Goody: 
 
@@ -1846,10 +1846,10 @@
           {\ifx\nexttoken\egroup \else % the next box is empty
              \hsize\wd0
              \steluitlijnenin[\combinationparameter\c!uitlijnen]%
-\dostartattributes{\??co\currentcombination}\c!letter\c!kleur\empty
+             \dostartattributes{\??co\currentcombination}\c!letter\c!kleur\empty
              \bgroup
              \aftergroup\endstrut
-\aftergroup\dostopattributes
+             \aftergroup\dostopattributes
              \aftergroup\egroup
              \begstrut
            \fi}%
@@ -1954,6 +1954,7 @@
 \def\flushcombinationstack
   {\noalign
      {\ifdim\ht\combinationstack>\zeropoint
+\nointerlineskip % nieuw 
         \@@cotussen
         \global\horcombination\maxhorcombination
         \globallet\doflushcombinationstack\dodoflushcombinationstack
diff --git a/tex/context/base/core-nav.tex b/tex/context/base/core-nav.tex
index e3e2e3a76..60877f953 100644
--- a/tex/context/base/core-nav.tex
+++ b/tex/context/base/core-nav.tex
@@ -137,19 +137,21 @@
 \newif\iflocationsplit
 
 \def\resetgoto
-  {\global\let\@@ia@@hoogte\!!zeropoint
-   \global\let\@@ia@@diepte\!!zeropoint}
+  {\globallet\@@ia@@hoogte\!!zeropoint
+   \globallet\@@ia@@diepte\!!zeropoint}
  
 \resetgoto
 
 \def\presetgoto
   {\iflocationstrut
      \setstrut
-     \xdef\@@ia@@hoogte{\the\ht\strutbox}%
-     \xdef\@@ia@@diepte{\the\dp\strutbox}%
+    %\xdef\@@ia@@hoogte{\the\strutht}%
+    %\xdef\@@ia@@diepte{\the\strutdp}%
+     \globallet\@@ia@@hoogte\strutheight
+     \globallet\@@ia@@diepte\strutdepth
    \else
-     \global\let\@@ia@@hoogte\@@iahoogte
-     \global\let\@@ia@@diepte\@@iadiepte
+     \globallet\@@ia@@hoogte\@@iahoogte
+     \globallet\@@ia@@diepte\@@iadiepte
    \fi}
 
 %D In the macros that deal with making areas into hyperlinks, 
diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex
index e9afb604d..77eec6bc7 100644
--- a/tex/context/base/core-not.tex
+++ b/tex/context/base/core-not.tex
@@ -441,8 +441,8 @@
      \forgetall
      \setfootnotebodyfont
      \redoconvertfont % to undo \undo calls in in headings etc
-     \splittopskip\ht\strutbox  % not actually needed here
-     \splitmaxdepth\dp\strutbox % not actually needed here
+     \splittopskip\strutht  % not actually needed here
+     \splitmaxdepth\strutdp % not actually needed here
      \iffixedlayoutdimensions % ugly hack, will change
        \linkermargeafstand\@@vnmargeafstand
        \rechtermargeafstand\linkermargeafstand
@@ -571,7 +571,7 @@
           \c!strut=\v!nee,
           \c!offset=\v!overlay]
          {\ifdim\dp0=\zeropoint            % this hack is needed because \vadjust
-            \hbox{\lower\dp\strutbox\box0}% % in margin number placement
+            \hbox{\lower\strutdp\box0}% % in margin number placement
           \else                             % hides the (always) present depth
             \box0
           \fi}%
@@ -705,7 +705,7 @@
              \c!strut=\v!nee,
             \c!offset=\v!overlay]
           {\ifdim\dp0=\zeropoint   % this hack is needed because \vadjust
-             \hbox{\lower\dp\strutbox\box0}% % in margin number placement
+             \hbox{\lower\strutdp\box0}% % in margin number placement
            \else                   % hides the (always) present depth
              \box0
            \fi}}%
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index e97e12955..d6ad8278a 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -64,7 +64,7 @@
    \else
      \par
      \ifdim\prevdepth<\zeropoint % =-1000pt ?
-       \vskip-\dp\strutbox
+       \vskip-\strutdp
      \else
        \removebottomthings
      \fi
@@ -471,7 +471,7 @@
    \endTBL
    % wrong ! ! ! better to have an auto-offset-overlay
    % \ifnum\TBLlevel>1
-   %   \vskip-\dp\strutbox
+   %   \vskip-\strutdp
    % \fi
    \egroup
    \egroup
@@ -596,8 +596,9 @@
    \setbox0\vbox{\trialtypesettingtrue \the\tbltoks}% 
    \ifautoTBLspread
      % experimental, stretch non fixed cells to \hsize 
-     \checktblwidthsone % trial run 
-     \checktblwidthstwo % real run 
+     \checktblwidthsone   % trial run 
+     \checktblwidthstwo   % real run 
+     \stretchtblwidths
      \let\handleTBLcell\dohandleTBLcellB
      \setbox\scratchbox\vbox{\trialtypesettingtrue \the\tbltoks}%
    \else\ifdim\wd0>\hsize
@@ -687,6 +688,21 @@
       \vbox{\the\tbltoks}%
     \fi\fi}
 
+\def\stretchtblwidths
+  {\!!dimend\zeropoint
+   \dorecurse\maximumcol
+     {\advance\!!dimend\gettblwid\recurselevel}%
+   % distribute width (stretch)
+   \ifdim\!!dimend<\hsize
+     \advance\!!dimend-\hsize
+     \!!dimend-\!!dimend
+     \divide\!!dimend\maximumcol
+     \dorecurse\maximumcol
+       {\scratchdimen\gettblwid\recurselevel
+        \advance\scratchdimen\!!dimend
+        \settblwid\recurselevel{\the\scratchdimen}}% 
+   \fi} 
+
 % \def\splittblbox#1% #1 <> 0/2 
 %   {\unvbox#1}
 
@@ -769,17 +785,17 @@
      {\let\xrowTBL\recurselevel
       \dorecurse\maximumcol
         {\let\xcolTBL\recurselevel
-         \count0=0\gettblrow\xrowTBL\xcolTBL\relax 
+         \!!countb=0\gettblrow\xrowTBL\xcolTBL\relax 
          % check row span 
-         \ifnum\count0>1
+         \ifnum\!!countb>1
            % current height in row 
            \dimen0=\gettblht\xrowTBL\xcolTBL 
            % find nearest height in row 
            \dimen2=\zeropoint              
            \dorecurse\maximumcol
              {\ifnum\recurselevel=\xcolTBL\else
-                \count2=0\gettblrow\xrowTBL\recurselevel\relax 
-                \ifnum\count2=\plusone
+                \!!countc=0\gettblrow\xrowTBL\recurselevel\relax 
+                \ifnum\!!countc=\plusone
                   \dimen4=\gettblht\xrowTBL\recurselevel\relax
                   \ifdim\dimen2<\dimen4
                     \dimen2=\dimen4
@@ -789,7 +805,7 @@
            \let\xxrowTBL\xrowTBL
            % calculate cummulative height 
            \dimen4=\dimen2 
-           \dorecurse{\count0}
+           \dorecurse{\!!countb}
              {\ifnum\xxrowTBL=\xrowTBL\else
                 \advance\dimen4 \gettblhei\xxrowTBL 
               \fi
@@ -797,10 +813,10 @@
            % distribute overshoot equally
            \ifdim\dimen4<\dimen0 
              \advance\dimen0 -\dimen4
-             \divide\dimen0 \count0 
+             \divide\dimen0 \!!countb 
              \let\xxrowTBL\xrowTBL
              \settblhei\xrowTBL{\the\dimen2}%
-             \dorecurse{\count0}
+             \dorecurse{\!!countb}
                {\dorecurse\maximumcol
                   {\ifnum\recurselevel=\xcolTBL\else
                      \scratchdimen\gettblht\xxrowTBL\recurselevel
@@ -816,7 +832,7 @@
            \fi\fi
          \fi}}}
 
-\def\checktblheightstwo%
+\def\checktblheightstwo
   {}
 
 \def\showtblwids#1%
diff --git a/tex/context/base/core-pos.tex b/tex/context/base/core-pos.tex
index b60186eed..d44af3480 100644
--- a/tex/context/base/core-pos.tex
+++ b/tex/context/base/core-pos.tex
@@ -707,7 +707,7 @@
 
 \def\wpos#1%
   {\dontleavehmode\vadjust % may disappear if buried
-     {\setbox0\hbox{\raise\dp\strutbox\hbox{\rawwpos{#1}}}%
+     {\setbox0\hbox{\raise\strutdp\hbox{\rawwpos{#1}}}%
       \rlap{\smashedbox0}}}
 
 \def\wwpos#1% \hsmashed{\llap{\rawwpos{#1}}}
@@ -766,22 +766,23 @@
 
 \def\doregisterparoptions
   {\doglobal\increment\parposcounter
-   \bgroup
+   \begingroup
      \leftskip 1\leftskip
      \rightskip1\rightskip
      \setpositiondataplus
        {p:\parposcounter}%         % identifier
-       {\zeropoint}
-       {\ht\strutbox}
-       {\dp\strutbox}
+       {\zeropoint}%
+       {\strutht}%
+       {\strutdp}%
        {\efficientdimen\hsize     ,% 1
         \efficientdimen\leftskip  ,% 2
         \efficientdimen\rightskip ,% 3
         \efficientdimen\hangindent,% 4
                    \the\hangafter ,% 5
         \efficientdimen\parindent }% 6
-     \normalhbox{\registerparsymbol}%
-   \egroup}
+    %\normalhbox{\registerparsymbol}%
+     \registerparsymbol
+   \endgroup}
 
 \newif\iftracepositions
 
@@ -913,39 +914,39 @@
 
 % \def\dopresetpositionanchors
 %   {\bgroup
-%    \dimen0=\ifdim\topskip>\ht\strutbox\topskip\else\ht\strutbox\fi
+%    \dimen0=\ifdim\topskip>\strutht\topskip\else\strutht\fi
 %    \dimen2=\MPy\textanchor
 %    \dimen4=\dimen2
 %    \advance\dimen2 \MPh\textanchor % space is essential
 %    \advance\dimen2 -\dimen0
-%    \advance\dimen4 \dp\strutbox
+%    \advance\dimen4 \strutdp
 %    \dimen6=\MPx\textanchor
 %    \dimen8=\MPw\textanchor
 %    \setxvalue{\POSprefix\headanchor}%
 %      {\realfolio,\withoutpt{\the\dimen6},\withoutpt{\the\dimen2},%
-%       \withoutpt{\the\dimen8},\withoutpt{\the\dimen0},\withoutpt{\the\dp\strutbox}}%
+%       \withoutpt{\the\dimen8},\withoutpt{\the\dimen0},\withoutpt{\the\strutdp}}%
 %    \setxvalue{\POSprefix\tailanchor}%
 %      {\realfolio,\withoutpt{\the\dimen6},\withoutpt{\the\dimen4},%
-%       \withoutpt{\the\dimen8},\withoutpt{\the\ht\strutbox},\withoutpt{\the\dp\strutbox}}%
+%       \withoutpt{\the\dimen8},\withoutpt{\the\strutht},\withoutpt{\the\strutdp}}%
 %   %\showanchor\textanchor\showanchor\headanchor\showanchor\tailanchor\wait
 %    \egroup}
 
 \def\dopresetpositionanchors
   {\bgroup
-   \!!dimena\ifdim\topskip>\ht\strutbox\topskip\else\ht\strutbox\fi
+   \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi
    \!!dimenb\MPy\textanchor
    \!!dimenc\!!dimenb
    \advance\!!dimenb \MPh\textanchor % space is essential
    \advance\!!dimenb -\!!dimena
-   \advance\!!dimenc \dp\strutbox
+   \advance\!!dimenc \strutdp
    \!!dimend\MPx\textanchor
    \!!dimene\MPw\textanchor
    \setxvalue{\POSprefix\headanchor}%
      {\realfolio,\withoutpt{\the\!!dimend},\withoutpt{\the\!!dimenb},%
-      \withoutpt{\the\!!dimene},\withoutpt{\the\!!dimena},\withoutpt{\the\dp\strutbox}}%
+      \withoutpt{\the\!!dimene},\withoutpt{\the\!!dimena},\withoutpt{\the\strutdp}}%
    \setxvalue{\POSprefix\tailanchor}%
      {\realfolio,\withoutpt{\the\!!dimend},\withoutpt{\the\!!dimenc},%
-      \withoutpt{\the\!!dimene},\withoutpt{\the\ht\strutbox},\withoutpt{\the\dp\strutbox}}%
+      \withoutpt{\the\!!dimene},\withoutpt{\the\strutht},\withoutpt{\the\strutdp}}%
   %\showanchor\textanchor\showanchor\headanchor\showanchor\tailanchor\wait
    \egroup}
 
@@ -1083,9 +1084,9 @@
             % rounding errors
              {\setbox\scratchbox\hbox to \overlaywidth
                 {\dopositionaction{#1::\MPanchoridentifier}\hss}%
-                 \ht\scratchbox\overlayheight
-                 \dp\scratchbox\zeropoint
-                 \box\scratchbox}}%
+              \ht\scratchbox\overlayheight
+              \dp\scratchbox\zeropoint
+              \box\scratchbox}}%
           {\hbox to \overlaywidth{\hss}}%
         \vfill}%
    \fi}
@@ -1836,7 +1837,6 @@
    \endgraf % new
    \getvalue{\??td\currenttextbackground\c!na}}
 
-
 \let\textparpages \!!zeropoint
 \let\textparheight\!!zeropoint
 \let\textparwidth \!!zeropoint
@@ -1913,7 +1913,7 @@
   {\dodoubleempty\dodefinetextbackground}
 
 \def\dodefinetextbackground[#1][#2]%
-  {\ifsecondargument
+  {\ifsecondargument % why ? 
      \copyparameters[\??td#1][\??td]
        [\c!status,\c!plaats,\c!variant,\c!mp,\c!methode,
         \c!achtergrond,\c!achtergrondkleur,\c!hoek,\c!niveau,
@@ -2100,7 +2100,7 @@
 %      \scratchdimen=\MPy{\s!margin:\currentmarginpos}%
 %      \doglobal\increment\currentmarginpos
 %      \advance\scratchdimen by -\MPy{\s!margin:\currentmarginpos}%
-%      \advance\scratchdimen by -\dp\strutbox
+%      \advance\scratchdimen by -\strutdp
 %      \setbox#1=\hbox
 %        {\setposition{\s!margin:\currentmarginpos}\raise\scratchdimen\box#1}%
 %      \dp#1=\!!zeropoint
@@ -2117,7 +2117,7 @@
      \scratchdimen\MPy{\s!margin:\currentmarginpos}%
      \doglobal\increment\currentmarginpos
      \advance\scratchdimen -\MPy{\s!margin:\currentmarginpos}%
-     \advance\scratchdimen -\dp\strutbox
+     \advance\scratchdimen -\strutdp
      % new
      \setbox#1\hbox
        {\hskip-\MPx{\s!margin:\currentmarginpos}%
@@ -2344,22 +2344,20 @@
 %D \startbuffer
 %D \def\cw#1{\color[white]{#1}}
 %D
-%D \def\TableShade#1#2%
-%D   {\startMPpositiongraphic
-%D      initialize_area(\MPpos{b:#1},\MPpos{e:#1}) ;
-%D      linear_shade(pxy,0,.4#2,.9#2) ;
-%D      anchor_area(\MPanchor{b:#1}) ;
-%D    \stopMPpositiongraphic}
-%D
-%D \dosetpositionaction{b:x}{\TableShade{x}{red}}
-%D \dosetpositionaction{b:y}{\TableShade{y}{green}}
-%D \dosetpositionaction{b:z}{\TableShade{z}{blue}}
+%D \startMPpositiongraphic{tableshade}
+%D   initialize_area(\MPpos{\MPvar{from}},\MPpos{\MPvar{to}}) ;
+%D   color c ; c := \MPvar{color} ;
+%D   linear_shade(pxy,0,.4c,.9c) ;
+%D   anchor_area(\MPanchor{\MPvar{from}}) ;
+%D \stopMPpositiongraphic
+%D 
+%D \setMPpositiongraphic{b:x}{tableshade}{from=b:x,to=e:x,color=red}
+%D \setMPpositiongraphic{b:y}{tableshade}{from=b:y,to=e:y,color=green}
+%D \setMPpositiongraphic{b:z}{tableshade}{from=b:z,to=e:z,color=blue}
 %D \stopbuffer
 %D
-%D \typebuffer
-%D
-%D % \haalbuffer
-%D
+%D \typebuffer \haalbuffer
+%D 
 %D The definition of the table looks about the same as the
 %D previous one:
 %D
@@ -2373,7 +2371,7 @@
 %D
 %D \typebuffer
 %D
-%D % \haalbuffer
+%D \haalbuffer
 
 % \definepositionframed[w][background=color,backgroundcolor=yellow]
 % \definepositionframed[x][background=color,backgroundcolor=red]
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 70c4af511..a248a99a2 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -11,7 +11,7 @@
 %C therefore copyrighted by \PRAGMA. See mreadme.pdf for
 %C details.
 
-\writestatus{loading}{Context Core Macros / Ruled Stuff Handling}
+\writestatus{loading}{Context Core Macros / Ruled Content Handling}
 
 \unprotect
 
@@ -795,7 +795,7 @@
      \let\localbegstrut\pseudobegstrut % was: \relax
      \let\localendstrut\pseudoendstrut % was: \relax
      \let\localstrut   \pseudostrut    % was: \relax
-    %\ifboxhasheight\ifdim\!!heighta<\ht\strutbox % saveguard
+    %\ifboxhasheight\ifdim\!!heighta<\strutht % saveguard
     %  \let\localbegstrut\relax                   % but not that
     %  \let\localstrut   \relax                   % save afterall
     %\fi\fi
@@ -1401,45 +1401,11 @@
   {\framednoflines\zerocount
    \framedlastlength\zeropoint}
 
-% \def\doreshapeframedbox%
-%   {\beginofshapebox
-%    \unvcopy\framebox
-%    \endofshapebox
-%    \global\@@globalwidth=\zeropoint
-%    \resetshapeframebox
-%    \reshapebox
-%      {\setbox0=\hbox
-%         {\strut\ifhbox\shapebox\unhbox\else\box\fi\shapebox}%
-%       \global\advance\framednoflines by 1
-%       \ifdim\framedlastlength>\zeropoint\else
-%         \global\framedlastlength=\wd0
-%       \fi
-%       \ifdim\wd0>\@@globalwidth
-%         \global\@@globalwidth=\wd0
-%       \fi}%
-%    \dosetraggedcommand{\localformat}%
-%    \raggedcommand
-%    \ifboxhasheight
-%      \setbox\framebox=\vbox to \localheight
-%        {\hsize\@@globalwidth
-%         \reshapebox{\hbox to \hsize{\ifhbox\shapebox\unhbox\else\box\fi\shapebox}}%
-%         \dobeforeframedbox
-%         \innerflushshapebox
-%         \doafterframedbox}%
-%    \else
-%      \setbox\framebox=\vbox
-%        {\hsize\@@globalwidth
-%         \reshapebox{\hbox to \hsize{\ifhbox\shapebox\unhbox\else\box\fi\shapebox}}%
-%         \innerflushshapebox}%
-%      \dp\framebox=\dp\strutbox
-%    \fi
-%    \ifdim\framedlastlength=\zeropoint\global\framednoflines=\wd\framebox\fi
-%    \ifcase\framednoflines\global\framednoflines=1\fi}
-
-% better depth preserving, else problems with framed display
-% math and auto width
+% The next implementation is frozen! It preserves the depth, 
+% otherwise we get problems with framed display math and auto 
+% width. 
 
-\def\doreshapeframedbox
+\def\doreshapeframedbox % frozen 
   {\beginofshapebox
    \unvcopy\framebox
    \endofshapebox
@@ -1470,7 +1436,7 @@
        {\hsize\@@globalwidth
         \reshapebox{\hbox to \hsize{\ifhbox\shapebox\unhbox\else\box\fi\shapebox}}%
         \innerflushshapebox}%
-     \dp\framebox\scratchdimen % \dp\strutbox otherwise problem with math
+     \dp\framebox\scratchdimen % \strutdp otherwise problem with math
    \fi
    \ifdim\framedlastlength=\zeropoint\global\framednoflines\wd\framebox\fi
    \ifcase\framednoflines\global\framednoflines\plusone\fi}
@@ -1539,14 +1505,14 @@
 %D baseline intact outside as well as inside the framed box.
 
 \def\doinlineframedbox
-  {\scratchdimen\dp\strutbox
+  {\scratchdimen\strutdp
    \advance\scratchdimen \ruledlinewidth
    \ifboxhasoffset
      \advance\scratchdimen \framedparameter\c!offset
    \fi
    \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
-   \ht\framebox\ht\strutbox
-   \dp\framebox\dp\strutbox
+   \ht\framebox\strutht
+   \dp\framebox\strutdp
    \box\framebox}
 
 %D We can also lower the box over the natural depth of the
@@ -1554,9 +1520,9 @@
 
 \def\doloweredframedbox
   {\getboxheight\scratchdimen\of\box\framebox
-   \advance\scratchdimen -\dp\strutbox
+   \advance\scratchdimen -\strutdp
    \ht\framebox\scratchdimen
-   \dp\framebox\dp\strutbox
+   \dp\framebox\strutdp
    \box\framebox}
 
 %D Hanging the content is mainly meant for cases like the
@@ -1618,14 +1584,14 @@
    \ifboxhasheight
      \dimen4=\localheight \divide\dimen4 2
      \dimen6=\dimen4
-     \advance\dimen4   \dp\strutbox
-     \advance\dimen6  -\dp\strutbox
+     \advance\dimen4   \strutdp
+     \advance\dimen6  -\strutdp
      \advance\dimen4 -2\ruledlinewidth
      \advance\dimen6  2\ruledlinewidth
    \else
-     \dimen4\ht\strutbox
+     \dimen4\strutht
      \advance\dimen4 \dimen2
-     \dimen6\dp\strutbox
+     \dimen6\strutdp
      \advance\dimen6 \dimen2
    \fi
    \unskip
@@ -1636,8 +1602,8 @@
         \!!depth\dimen6
         \!!width\ruledlinewidth
       \hskip\dimen2}%
-   \ht0\ht\strutbox
-   \dp0\dp\strutbox
+   \ht0\strutht
+   \dp0\strutdp
    \box0
    \ignorespaces
    \egroup}
@@ -1722,8 +1688,8 @@
    \getparameters[\??bj][#1]%
    \setstrut
    \doif\@@bjbreedte\v!max{\def\@@bjbreedte{1em}}%
-   \doif\@@bjhoogte \v!max{\def\@@bjhoogte{\ht\strutbox}}%
-   \doif\@@bjdiepte \v!max{\def\@@bjdiepte{\dp\strutbox}}%
+   \doif\@@bjhoogte \v!max{\def\@@bjhoogte{\strutht}}%
+   \doif\@@bjdiepte \v!max{\def\@@bjdiepte{\strutdp}}%
    \localstartcolor[\@@bjkleur]%
      \vrule
        \!!width \@@bjbreedte
@@ -1800,7 +1766,7 @@
 
 \def\dodrawmarginrule
   {\setbox0\hbox
-     {\vrule\!!depth\strutdepth\!!height\strutheight\!!width\@@kadikte}%
+     {\vrule\!!depth\strutdepth\!!height\strutheight\!!width\@@kalijndikte}%
    \smashbox0 % no \vsmash !!!
    \box0}
 
@@ -1840,7 +1806,7 @@
 %D
 %D \showsetup{\y!setupmarginrules}
 
-\def\setupmarginrules%
+\def\setupmarginrules
   {\dodoubleargument\getparameters[\??ka]}
 
 %D \macros
@@ -1886,7 +1852,7 @@
 %D \stopkantlijn
 %D
 %D \startkantlijn[5]
-%D The second paragraph is a level~5 one. As we can se here,
+%D The second paragraph is a level~5 one. As we can see here,
 %D the marginal rule gets a width according to its level.
 %D \stopkantlijn
 %D
@@ -1924,24 +1890,24 @@
 
 \def\complexvl[#1]%
   {\bgroup
-   \dimen0=#1\ht\strutbox
-   \dimen2=#1\dp\strutbox
-   \setbox0\hbox
+   \!!dimena#1\strutht
+   \!!dimenb#1\strutdp
+   \setbox\scratchbox\hbox
      {\vrule
         \!!width \linewidth
-        \!!height\dimen0
-        \!!depth \dimen2}%
-   \dp0\dp\strutbox
-   \ht0\ht\strutbox
-   \box0
+        \!!height\!!dimena
+        \!!depth \!!dimenb}%
+   \dp\scratchbox\strutdp
+   \ht\scratchbox\strutht
+   \box\scratchbox
    \egroup}
 
 \def\complexhl[#1]%
   {\hbox
      {\vrule
-        \!!width#1em
+        \!!width #1\s!em
         \!!height\linewidth
-        \!!depth\zeropoint}}
+        \!!depth \zeropoint}}
 
 \definecomplexorsimple\vl \def\simplevl{\complexvl[1]}
 \definecomplexorsimple\hl \def\simplehl{\complexhl[1]}
@@ -2005,8 +1971,8 @@
 %    \startcolor[\@@dlkleur]%
 %    \doif{\@@dlhoogte}{\v!max}{\def\@@dlhoogte{1}}%
 %    \doif{\@@dldiepte}{\v!max}{\def\@@dldiepte{1}}%
-%    \freezedimensionwithunit\@@dlhoogte{\ht\strutbox}%
-%    \freezedimensionwithunit\@@dldiepte{\dp\strutbox}%
+%    \freezedimensionwithunit\@@dlhoogte{\strutht}%
+%    \freezedimensionwithunit\@@dldiepte{\strutdp}%
 %    \leaders
 %      \hrule\!!height\@@dlhoogte\!!depth\@@dldiepte
 %      \hfill
@@ -2054,8 +2020,8 @@
      \let\@@dlhoogte\!!plusone
      \let\@@dldiepte\!!plusone
    \fi
-   \freezedimensionwithunit\@@dlhoogte{\ht\strutbox}%
-   \freezedimensionwithunit\@@dldiepte{\dp\strutbox}%
+   \freezedimensionwithunit\@@dlhoogte{\strutht}%
+   \freezedimensionwithunit\@@dldiepte{\strutdp}%
    \divide\linewidth 2
    \doifelse\@@dlachtergrond\v!kleur
      {\startcolor[\@@dlachtergrondkleur]%
@@ -2460,7 +2426,7 @@
    \ifinsidefloat
      \box\framebox
    \else
-     \doplaats[\??kd#1][\c!dieptecorrectie=\v!uit]{\box\framebox}%
+     \doplacement[\??kd#1][\c!dieptecorrectie=\v!uit]{\box\framebox}%
    \fi
    \egroup}
 
@@ -2592,8 +2558,8 @@
       \fi
       \color[\@@tllijnkleur]
         {\leaders\hrule\!!height\dimen4\!!depth\dimen6\hfill}}%
-   \ht\scratchbox\ht\strutbox
-   \dp\scratchbox\dp\strutbox
+   \ht\scratchbox\strutht
+   \dp\scratchbox\strutdp
    \noindent\box\scratchbox
 %\nobreak\verticalstrut\kern-\lineheight
 % evt \witruimte
@@ -2612,8 +2578,8 @@
   {\ifhmode
      \endgraf
    \fi
-   \dimen0\dp\strutbox
-   \ifdim\prevdepth<\dp\strutbox
+   \dimen0\strutdp
+   \ifdim\prevdepth<\strutdp
      \ifdim\prevdepth>\zeropoint
        \advance\dimen0 -\prevdepth
      \fi
@@ -3124,7 +3090,7 @@
 % \def\registered{\encircled{R}}
 
 % \setuprules
-%   [\c!dikte=\v!middel]
+%   [\c!lijndikte=\v!middel]
 
 \setuplinewidth
   [\v!middel]
@@ -3174,7 +3140,7 @@
 
 \setupmarginrules
   [\c!niveau=0,
-   \c!dikte=\@@kadefaultwidth\linewidth]
+   \c!lijndikte=\@@kadefaultwidth\linewidth]
 
 \setupthinrules
   [\c!interlinie=\v!klein,
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index 44612b528..6ee585198 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -206,7 +206,7 @@
      {\let\numberseparator\empty
       \let#3#2}
      {\unexpanded\def\numberseparator{\getvalue{#1\c!scheider}}%
-      \edef#3{\@EA\separatednumber\@EA{#2}}}}
+      \edef#3{\@EA\separatednumber\@EA{#2}}}}  % hm, etex 
 
 \def\lossenummer[#1]%
   {\maakhetnummer[#1]%
@@ -827,12 +827,12 @@
 \def\getsectieblokomgeving#1%
   {\let\do\firstofoneargument\getvalue{\??sb\s!do#1}}
 
-\setvalue{\e!start\e!sectieblokomgeving}%
+\setvalue{\e!start\v!sectieblokomgeving}%
   {\dosingleargument\dostartsectieblokomgeving}
 
 \def\dostartsectieblokomgeving[#1]% evt \pushendofline \popendofline
   {\long\def\do##1##2{\setsectieblokomgeving{#1}{##1##2}}%
-   \grabuntil{\e!stop\e!sectieblokomgeving}{\getvalue{\??sb\s!do#1}}}
+   \grabuntil{\e!stop\v!sectieblokomgeving}{\getvalue{\??sb\s!do#1}}}
 
 %D \starttypen
 %D \startsectionblockenvironment[frontpart]
@@ -1468,7 +1468,7 @@
 \def\stoplistreferences%
   {\gobbleoneargument}
 
-% \prevdepth\dp\strutbox is belangrijk, vergelijk naast elkaar:
+% \prevdepth\strutdp % is belangrijk, vergelijk naast elkaar:
 %
 % \onderwerp{test} \input tufte
 % \onderwerp{test} \strut \input tufte
@@ -1552,7 +1552,8 @@
                \ifdisplaysectionhead
                  \getvalue{\??ko#1\c!tekstcommando}%
                    {\setstrut\begstrut#3\endstrut}%
-                 \xdef\localheaddepth{\the\dp\strutbox}%
+                 \xdef\localheaddepth{\the\strutdp}%
+                % == \globallet\localheaddepth\strutdepth
                \else
                  \getvalue{\??ko#1\c!tekstcommando}{#3}%
                \fi
@@ -1608,7 +1609,8 @@
                \ifdisplaysectionhead
                  \getvalue{\??ko#1\c!tekstcommando}%
                    {\setstrut\begstrut#4\endstrut}%
-                 \xdef\localheaddepth{\the\dp\strutbox}%
+                 \xdef\localheaddepth{\the\strutdp}%
+                 % == \globallet\localheaddepth\strutdepth
                \else
                  \getvalue{\??ko#1\c!tekstcommando}{#4}%
                \fi
@@ -1623,62 +1625,12 @@
 \let\headlastlinewidth\!!zeropoint
 \newif\ifcontinuoushead
 
-% \def\beginheadplacement#1%
-%   {\bgroup
-%    \gdef\localheaddepth{\dp\strutbox}%
-%    \everypar{}% needed indeed
-%    \noindent  % ipv \witruimte elders, na \forgetall !
-%    \bgroup
-%    \forgetall % now we may forget everything
-%   %\showcomposition
-%    \mindermeldingen
-%    \postponefootnotes
-%    \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
-%    %\setupinteraction
-%    %  [\c!letter=,
-%    %   \c!kleur=,
-%    %   \c!contrastkleur=]%
-%    \resetinteractionparameter\c!letter
-%    \resetinteractionparameter\c!kleur
-%    \resetinteractionparameter\c!contrastkleur
-%    \strictouterreferencestrue % tzt instelling
-%    \def\localheadsetup%
-%      {\dolocalheadsetup{#1}}%
-%    \startsynchronisatie}
-
-% \def\beginheadplacement#1%
-%   {\bgroup
-%    \setsystemmode{#1}% to be documented                 
-% \ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
-%    \gdef\localheaddepth{\dp\strutbox}%
-%    \everypar\emptytoks % needed indeed
-%    \noindent           % ipv \witruimte elders, na \forgetall !
-%    \bgroup
-%    \doifelsevalue{\??ko#1\c!titeluitlijnen}\v!ja % new 
-%      {\leftskip 1\leftskip
-%       \rightskip1\rightskip
-%       \edef\next{\leftskip\the\leftskip\rightskip\the\rightskip}%
-%       \xdef\localheadskip{\the\leftskip}%
-%       \expandafter\forgetall\next % now we may forget everything
-%       \setlocalhsize\hsize\localhsize}
-%      {\globallet\localheadskip\!!zeropoint
-%       \forgetall}%
-%    \mindermeldingen
-%    \postponefootnotes
-%    \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
-%    \resetinteractionparameter\c!letter
-%    \resetinteractionparameter\c!kleur
-%    \resetinteractionparameter\c!contrastkleur
-%    \strictouterreferencestrue % tzt instelling
-%    \def\localheadsetup%
-%      {\dolocalheadsetup{#1}}%
-%    \startsynchronisatie}
-
 \def\beginheadplacement#1%
   {\bgroup
    \setsystemmode{#1}% to be documented                 
    \ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
-   \gdef\localheaddepth{\dp\strutbox}%
+   \gdef\localheaddepth{\strutdp}%
+   % == \globallet\localheaddepth\strutdp
    \everypar\emptytoks % needed indeed
    \noindent           % ipv \witruimte elders, na \forgetall !
    \bgroup
@@ -1704,7 +1656,6 @@
      {\dolocalheadsetup{#1}}%
    \startsynchronisatie}
 
-
 \def\endheadplacement#1#2%
   {\doifelsevalue{\??rf#1\c!status}\v!start
      {\doifvaluenothing{\??ko#1\c!file}{\autocrossdocumentfalse}}
@@ -1756,7 +1707,7 @@
    \fi
    \ifdisplaysectionhead
      \ifgridsnapping % important, font related depth, see comment
-       \prevdepth\dp\strutbox
+       \prevdepth\strutdp
      \else
        \prevdepth\localheaddepth
      \fi
@@ -1765,7 +1716,7 @@
    \egroup
    \egroup
    \ifdisplaysectionhead
-     \doifvalue{\??ko#1\c!springvolgendein}\v!nee\noindentation
+     \dochecknextindentation{\??ko#1}%
    \else
      \nonoindentation % recently added, was a bug
    \fi}
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 53ba96cc7..f5a6b7730 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -1122,6 +1122,22 @@
 
 \def\nietinspringen{\inspringen[\v!nee,\v!volgende]}
 \def\welinspringen {\inspringen[\v!ja,\v!eerste]}
+
+\def\dochecknextindentation#1% internal one 
+  {\checknextindentation[\getvalue{#1\c!springvolgendein}]}
+
+\def\checknextindentation[#1]%
+  {\processaction[#1][%\v!handhaaf=>,
+      \v!ja=>\doindentation,
+     \v!nee=>\noindentation,
+    \v!auto=>\autoindentation]}
+
+\def\doindentation% too simple
+  {\gdef\checkindentation{\global\indentationtrue}}
+
+\ifx\autoindentation\undefined 
+  \let\autoindentation\relax
+\fi
 
 % \frenchspacing leidt soms tot afbreken tussen -, vandaar
 % de variant \newfrenchspacing.
@@ -1734,7 +1750,7 @@
   {\strutdimen\normallineheight       % wat niet per se \lineheight
    \strutdimen#2\strutdimen           % is omdat een strut lokaal
    \strutdimen#3\strutdimen           % kan afwijken van de globale
-   \edef#1{\the\strutdimen}}          % strut
+   \edef#1{\the\strutdimen}} % macro  % strut
 
 % plain definition:
 %
@@ -1779,8 +1795,8 @@
 
 \def\setcharstrut#1%
   {\setbox\strutbox\hbox{#1}%
-   \edef\strutheight{\the\ht\strutbox}%
-   \edef\strutdepth {\the\dp\strutbox}%
+   \edef\strutheight{\the\strutht}%
+   \edef\strutdepth {\the\strutdp}%
    \dosetstrut}
 
 \def\setfontstrut
@@ -1831,8 +1847,7 @@
    \setstrut}
 
 \def\begstrut
-  {%relax\ifdim\ht\strutbox=\zeropoint\else
-   \relax\ifcase\ht\strutbox\else
+  {\relax\ifcase\strutht\else
      \strut
      \normalpenalty\@M % \!!tenthousand
      \normalhskip\zeropoint
@@ -1840,8 +1855,7 @@
    \fi}
 
 \def\endstrut
-  {%relax\ifhmode\ifdim\ht\strutbox=\zeropoint\else
-   \relax\ifhmode\ifcase\ht\strutbox\else
+  {\relax\ifhmode\ifcase\strutht\else
      \removeunwantedspaces
      \normalpenalty\@M % \!!tenthousand
      \normalhskip\zeropoint
diff --git a/tex/context/base/core-tab.tex b/tex/context/base/core-tab.tex
index df2db6ab6..320ee324e 100644
--- a/tex/context/base/core-tab.tex
+++ b/tex/context/base/core-tab.tex
@@ -1174,17 +1174,17 @@
 \let\@@TABLEhead\empty  \def\TABLEhead{\@@TABLEhead}
 \let\@@TABLEtail\empty  \def\TABLEtail{\@@TABLEtail}
 
-\letvalue{\e!start\e!tablehead}=\undefined
-\letvalue{\e!stop \e!tablehead}=\undefined
-\letvalue{\e!start\e!tabletail}=\undefined
-\letvalue{\e!stop \e!tabletail}=\undefined
+\letvalue{\e!start\v!tablehead}=\undefined
+\letvalue{\e!stop \v!tablehead}=\undefined
+\letvalue{\e!start\v!tabletail}=\undefined
+\letvalue{\e!stop \v!tabletail}=\undefined
 
 \expanded
-  {\def\csname\e!start\e!tablehead\endcsname##1\csname\e!stop\e!tablehead\endcsname%
+  {\def\csname\e!start\v!tablehead\endcsname##1\csname\e!stop\v!tablehead\endcsname%
      {\noexpand\setTABLEhead##1\noexpand\end}}
 
 \expanded
-  {\def\csname\e!start\e!tabletail\endcsname##1\csname\e!stop\e!tabletail\endcsname%
+  {\def\csname\e!start\v!tabletail\endcsname##1\csname\e!stop\v!tabletail\endcsname%
      {\noexpand\setTABLEtail##1\noexpand\end}}
 
 %D The second argument is a dummy one, by scanning for it, we
@@ -1218,9 +1218,9 @@
    \fi
    \advance\dimen2 -\dimen0
    \global\TABLEmaxheight\dimen2
-   \global\advance\TABLEmaxheight -\dp\strutbox
+   \global\advance\TABLEmaxheight -\strutdp
    \ifdim\prevdepth<\maxdimen\ifdim\prevdepth>\zeropoint
-     \global\advance\TABLEmaxheight -\dp\strutbox
+     \global\advance\TABLEmaxheight -\strutdp
      \global\advance\TABLEmaxheight -\parskip
    \fi\fi}
 
@@ -1233,7 +1233,7 @@
    \fi
    \advance\dimen2 -\dimen0
    \global\TABLEmaxheight\dimen2
-   \global\advance\TABLEmaxheight -\dp\strutbox}
+   \global\advance\TABLEmaxheight -\strutdp}
 
 \def\calculatemaxTABLEheight#1%
   {\ifsplittables
@@ -1570,7 +1570,7 @@
        \gdef\afterTABLEline{\TABLEnoalign{\nobreak}}%
      \else
        \dimen2=\TABLEheight
-       \advance\dimen2 \dp\strutbox
+       \advance\dimen2 \strutdp
        \advance\dimen2 \TABLEtailheight
        \advance\dimen2 \TABLEcaptionheight
        \advance\dimen2 \lineheight % we're ahead
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index 8a7753504..ff8aa2f9b 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -487,8 +487,8 @@
      {\unvbox\tabulatebox}%
    \setbox\tabulatebox\hbox to \wd\tabulatebox
      {\hss\dotabulatehook{\box\tabulatebox}\hss}%
-   \ht\tabulatebox\ht\strutbox
-   \dp\tabulatebox\dp\strutbox
+   \ht\tabulatebox\strutht
+   \dp\tabulatebox\strutdp
    \box\tabulatebox}
 
 \def\dotabulatehook {\getvalue{\@@tabhook@@ \tabulatecolumn}}
@@ -572,7 +572,7 @@
   {\ifthirdargument
      \doifundefined{\??tt#1::\c!eenheid}
        {\copyparameters
-          [\??tt#1::][\??tt\e!tabulate::]%
+          [\??tt#1::][\??tt\v!tabulate::]%
           [\c!kader,\c!afstand,\c!eenheid,\c!voor,\c!korps,\c!na,
            \c!binnen,\c!inspringen,\c!marge,\c!uitlijnen,
            \c!lijnkleur,\c!lijndikte,EQ]}%
@@ -652,19 +652,19 @@
    \tabulatecontent
    \tabulatetailcontent}
  
-\setvalue{\e!start\e!tabulatehead}%
+\setvalue{\e!start\v!tabulatehead}%
   {\dosingleempty\dostartstarttabulatehead}
 
 \def\dostartstarttabulatehead[#1]%
-  {\processcontent{\e!stop\e!tabulatehead}\next
-     {\letvalue{\??tt\iffirstargument#1\else\e!tabulate\fi::\v!hoofd}\next}}
+  {\processcontent{\e!stop\v!tabulatehead}\next
+     {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::\v!hoofd}\next}}
 
-\setvalue{\e!start\e!tabulatetail}%
+\setvalue{\e!start\v!tabulatetail}%
   {\dosingleempty\dostartstarttabulatetail}
 
 \def\dostartstarttabulatetail[#1]%
-  {\processcontent{\e!stop\e!tabulatetail}\next
-     {\letvalue{\??tt\iffirstargument#1\else\e!tabulate\fi::\v!voet}\next}}
+  {\processcontent{\e!stop\v!tabulatetail}\next
+     {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::\v!voet}\next}}
 
 \def\dosubstarttabulate
   {\dodoubleempty\dodosubstarttabulate}
@@ -672,17 +672,17 @@
 \def\dodosubstarttabulate[#1][#2]%
   {\getvalue{\e!start#1::\ifundefined{\e!start#1::#2}\else#2\fi}}
 
-\setvalue{\e!start\e!tabulate}%
+\setvalue{\e!start\v!tabulate}%
   {\bgroup\dodoubleempty\donormalstarttabulate}
 
 \def\donormalstarttabulate[#1][#2]%
   {\ifsecondargument
-     \getparameters[\??tt\e!tabulate::][#2]%
+     \getparameters[\??tt\v!tabulate::][#2]%
    \fi
    \iffirstargument
-     \def\next{\dofinalstarttabulate[\e!tabulate][][#1]}%
+     \def\next{\dofinalstarttabulate[\v!tabulate][][#1]}%
    \else
-     \def\next{\dofinalstarttabulate[\e!tabulate][][|l|p|]}%
+     \def\next{\dofinalstarttabulate[\v!tabulate][][|l|p|]}%
    \fi
    \next}
 
@@ -781,16 +781,16 @@
    \let\\\tabulateautocolumn}
 
 %\def\tabulateruleseperator
-%  {\vskip\dp\strutbox}
+%  {\vskip\strutdp}
 
-\def\tabulateruleseperator%
+\def\tabulateruleseperator
   {\bgroup
    \let\factor\!!plusone
-   \scratchskip\dp\strutbox
+   \scratchskip\strutdp
    \ExpandFirstAfter\processallactionsinset
      [\getvalue{\??tt\currenttabulate\c!afstand}]
      [ \v!blanko=>\scratchskip\bigskipamount,
-       \v!diepte=>\scratchskip\dp\strutbox,
+       \v!diepte=>\scratchskip\strutdp,
         \v!klein=>\def\factor{.25},
        \v!middel=>\def\factor{.5},
         \v!groot=>,
@@ -1025,7 +1025,7 @@
 \def\xbskip{\bskip}%
 \def\xeskip{\eskip}%
    \ifsplittabulate
-     \splittopskip\ht\strutbox
+     \splittopskip\strutht
      \global\let\flushtabulatedindeed\empty
      \long\def\bbskip
        {\ifvoid\tablebox\tabulatecolumn
@@ -1086,8 +1086,8 @@
    \def\tablebaselinecorrection
      {\def\dobaselinecorrection
         {\vskip-\prevdepth
-         \vskip\dp\strutbox
-         \vskip\dp\strutbox}%
+         \vskip\strutdp
+         \vskip\strutdp}%
       \baselinecorrection}%
    \def\FL{\TABLEnoalign
      {\ifinsidefloat\else
@@ -1097,7 +1097,7 @@
       \tabulaterule
       \dotabulatenobreak
       \tabulateruleseperator
-      \prevdepth\dp\strutbox
+      \prevdepth\strutdp
       \dotabulatenobreak}}%
    \def\ML{\TABLEnoalign
      {\tabulateruleseperator
@@ -1117,7 +1117,7 @@
       \tabulaterule
       \ifinsidefloat\else
         \doifemptyvalue{\??tt\currenttabulate\c!na} % no expansion
-          {\vskip\dp\strutbox
+          {\vskip\strutdp
            \vbox{\strut}%
            \vskip-\lineheight}%
       \fi}}%
@@ -1125,9 +1125,9 @@
    %
    \chardef\tabulatepass\plustwo
    \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}%
-   \prevdepth\dp\strutbox % nog eens beter, temporary hack
+   \prevdepth\strutdp % nog eens beter, temporary hack
    \doifvalue{\??tt\currenttabulate\c!afstand}\v!grid
-     {\vskip-\dp\strutbox}% experimental tm-prikkels
+     {\vskip-\strutdp}% experimental tm-prikkels
    %
    \stopframedcontent
    %
@@ -1186,7 +1186,7 @@
    \else\ifsecondargument
      \getparameters[\??tt#1::][#2]%
    \else
-     \getparameters[\??tt\e!tabulate::][#1]%
+     \getparameters[\??tt\v!tabulate::][#1]%
    \fi\fi}
 
 \setuptabulate
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index 09e90e34c..4b302422a 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -729,7 +729,7 @@
   {\stopverbatimcolor
    \stopopelkaar  % includes \egroup
    \getvalue{\??tp#1\c!na}%
-   \doifvalue{\??tp#1\c!springvolgendein}\v!nee\noindentation}
+   \dochecknextindentation{\??tp#1}}
 
 %D \macros
 %D   {setuptyping}
diff --git a/tex/context/base/core-vis.tex b/tex/context/base/core-vis.tex
index 2c26e3a48..3b5c6a5d5 100644
--- a/tex/context/base/core-vis.tex
+++ b/tex/context/base/core-vis.tex
@@ -76,15 +76,15 @@
        \normalhbox 
          {\boxrulewidth5\testrulewidth
           \setbox0\ruledhbox to \hangindent
-            {\scratchdimen\ht\strutbox
-             \advance\scratchdimen \dp\strutbox
+            {\scratchdimen\strutht
+             \advance\scratchdimen \strutdp
              \vrule
                \!!width  \zeropoint
                \!!height \zeropoint
                \!!depth -\hangafter\scratchdimen}%
           \normalhskip-\hangindent
           \smashbox0
-          \raise\ht\strutbox\box0}%
+          \raise\strutht\box0}%
      \fi
    \fi}
 
diff --git a/tex/context/base/enco-grk.tex b/tex/context/base/enco-grk.tex
new file mode 100644
index 000000000..dbab21302
--- /dev/null
+++ b/tex/context/base/enco-grk.tex
@@ -0,0 +1,317 @@
+%D \module
+%D   [       file=enco-grk,
+%D        version=2003.03.01,
+%D          title=\CONTEXT\ Encoding Macros,
+%D       subtitle=Greek,
+%D         author=Apostolos Syropoulos,
+%D           date=\currentdate,
+%D      copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+
+\startencoding[default]
+
+%
+% Uppercase Greek letters
+%
+
+\definecharacter GreekAlpha        {A}
+\definecharacter GreekBeta         {B}
+\definecharacter GreekGamma        {G}
+\definecharacter GreekDelta        {D}
+\definecharacter GreekEpsilon      {E}
+\definecharacter GreekZeta         {Z}
+\definecharacter GreekEta          {H}
+\definecharacter GreekTheta        {J}
+\definecharacter GreekIota         {I}
+\definecharacter GreekKappa        {K}
+\definecharacter GreekLamda        {L}
+\definecharacter GreekMu           {M}
+\definecharacter GreekNu           {N}
+\definecharacter GreekXi           {X}
+\definecharacter GreekOmicron      {O}
+\definecharacter GreekPi           {P}
+\definecharacter GreekRho          {R}
+\definecharacter GreekSigma        {S}
+\definecharacter GreekTau          {T}
+\definecharacter GreekUpsilon      {U}
+\definecharacter GreekPhi          {F}
+\definecharacter GreekChi          {Q}
+\definecharacter GreekPsi          {Y}
+\definecharacter GreekOmega        {W}
+
+%
+% Lowercase Greek letters
+%
+
+\definecharacter Greekalpha        {a}
+\definecharacter Greekbeta         {b}
+\definecharacter Greekgamma        {g}
+\definecharacter Greekdelta        {d}
+\definecharacter Greekepsilon      {e}
+\definecharacter Greekzeta         {z}
+\definecharacter Greeketa          {h}
+\definecharacter Greektheta        {j}
+\definecharacter Greekiota         {i}
+\definecharacter Greekkappa        {k}
+\definecharacter Greeklamda        {l}
+\definecharacter Greekmu           {m}
+\definecharacter Greeknu           {n}
+\definecharacter Greekxi           {x}
+\definecharacter Greekomicron      {o}
+\definecharacter Greekpi           {p}
+\definecharacter Greekrho          {r}
+\definecharacter Greekfinalsigma   {c}
+\definecharacter Greeksigma        {s}
+\definecharacter Greektau          {t}
+\definecharacter Greekupsilon      {u}
+\definecharacter Greekphi          {f}
+\definecharacter Greekchi          {q}
+\definecharacter Greekpsi          {y}
+\definecharacter Greekomega        {w}
+
+%
+% Accented Uppercase Greek letters
+%
+
+\definecharacter GreekAlphatonos        {'A}
+\definecharacter GreekEpsilontonos      {'E}
+\definecharacter GreekEtatonos          {'H}
+\definecharacter GreekIotatonos         {'I}
+\definecharacter GreekOmicrontonos      {'O}
+\definecharacter GreekUpsilontonos      {'U}
+\definecharacter GreekOmegatonos        {'W}
+\definecharacter GreekIotadialytika     {"I}
+\definecharacter GreekUpsilondialytika  {"U}
+
+%
+% Accented Lowercase Greek letters
+%
+
+\definecharacter Greekalphatonos             {'a}
+\definecharacter Greekepsilontonos           {'e}
+\definecharacter Greeketatonos               {'h}
+\definecharacter Greekiotatonos              {'i}
+\definecharacter Greekomicrontonos           {'o}
+\definecharacter Greekupsilontonos           {'u}
+\definecharacter Greekomegatonos             {'w}
+\definecharacter Greekiotadialytika          {"i}
+\definecharacter Greekupsilondialytika       {"u}
+\definecharacter Greekiotadialytikatonos     {'"i}
+\definecharacter Greekupsilondialytikatonos  {'"u}
+
+%
+% Miscellaneous Greek symbols
+%
+
+\definecharacter Greekleftquot               {((}
+\definecharacter Greekrightquot              {))}
+\definecharacter Greektonos                  {'}
+\definecharacter Greekdialytikatonos         {'"}
+\definecharacter Greekapostrophos            {''}
+
+\stopencoding 
+
+%%% Note that with the command 
+%%% \definecasemap 165 181 165
+%%% character 165 becomes 181 in uppercase and 165 in lowercase
+
+\startmapping[iso-8859-7]
+
+%
+% Uppercase Greek letters
+% 
+
+\definecasemap 193 193 225 % GreekAlpha  
+\definecasemap 194 194 226 % GreekBeta   
+\definecasemap 195 195 227 % GreekGamma  
+\definecasemap 196 196 228 % GreekDelta  
+\definecasemap 197 197 229 % GreekEpsilon
+\definecasemap 198 198 230 % GreekZeta   
+\definecasemap 199 199 213 % GreekEta    
+\definecasemap 200 200 232 % GreekTheta  
+\definecasemap 201 201 233 % GreekIota   
+\definecasemap 202 202 234 % GreekKappa  
+\definecasemap 203 203 235 % GreekLamda  
+\definecasemap 204 204 236 % GreekMu     
+\definecasemap 205 205 237 % GreekNu     
+\definecasemap 206 206 238 % GreekXi     
+\definecasemap 207 207 239 % GreekOmicron
+\definecasemap 208 208 240 % GreekPi     
+\definecasemap 209 209 241 % GreekRho    
+\definecasemap 211 211 243 % GreekSigma  
+\definecasemap 212 212 244 % GreekTau    
+\definecasemap 213 213 245 % GreekUpsilon
+\definecasemap 214 214 246 % GreekPhi    
+\definecasemap 215 215 247 % GreekChi    
+\definecasemap 216 216 248 % GreekPsi    
+\definecasemap 217 217 249 % GreekOmega  
+
+%
+% Lowercase Greek letters
+%
+
+\definecasemap 225 193 225 % Greekalpha  
+\definecasemap 226 194 226 % Greekbeta   
+\definecasemap 227 195 227 % Greekgamma  
+\definecasemap 228 196 228 % Greekdelta  
+\definecasemap 229 197 229 % Greekepsilon
+\definecasemap 230 198 230 % Greekzeta   
+\definecasemap 213 199 213 % Greeketa    
+\definecasemap 232 200 232 % Greektheta  
+\definecasemap 233 201 233 % Greekiota   
+\definecasemap 234 202 234 % Greekkappa  
+\definecasemap 235 203 235 % Greeklamda  
+\definecasemap 236 204 236 % Greekmu     
+\definecasemap 237 205 237 % Greeknu     
+\definecasemap 238 206 238 % Greekxi     
+\definecasemap 239 207 239 % Greekomicron
+\definecasemap 240 208 240 % Greekpi     
+\definecasemap 241 209 241 % Greekrho
+\definecasemap 242 211 242 % Greekfinalsigma    
+\definecasemap 243 211 243 % GreekSigma  
+\definecasemap 244 212 244 % GreekTau    
+\definecasemap 245 213 245 % GreekUpsilon
+\definecasemap 246 214 246 % GreekPhi    
+\definecasemap 247 215 247 % GreekChi    
+\definecasemap 248 216 248 % GreekPsi    
+\definecasemap 249 217 249 % GreekOmega  
+
+%
+% Accented Uppercase Greek letters
+%
+
+\definecasemap 182 193 220  % GreekAlphatonos
+\definecasemap 184 197 221  % GreekEpsilontonos
+\definecasemap 185 199 222  % GreekEtatonos
+\definecasemap 186 201 223  % GreekIotatonos
+\definecasemap 188 207 252  % GreekOmicrontonos
+\definecasemap 190 213 253  % GreekUpsilontonos
+\definecasemap 191 217 254  % GreekOmegatonos
+\definecasemap 218 218 250  % GreekIotadialytika
+\definecasemap 219 219 251  % GreekUpsilondialytika
+
+%
+% Accented Lowercase Greek letters
+%
+
+\definecasemap 220 193 220  % Greekalphatonos
+\definecasemap 221 197 221  % Greekepsilontonos
+\definecasemap 222 199 222  % Greeketatonos
+\definecasemap 223 201 223  % Greekiotatonos
+\definecasemap 252 207 252  % Greekomicrontonos
+\definecasemap 253 213 253  % Greekupsilontonos
+\definecasemap 254 217 254  % Greekomegatonos
+\definecasemap 250 218 250  % Greekiotadialytika
+\definecasemap 251 219 251  % Greekupsilondialytika
+\definecasemap 192 218 192  % Greekiotadialytikatonos
+\definecasemap 224 219 224  % Greekupsilondialytikatonos
+
+
+\stopencoding 
+
+\startencoding[iso-8859-7]
+
+%
+% Uppercase Greek letters
+%
+
+\definecharacter GreekAlpha        193
+\definecharacter GreekBeta         194
+\definecharacter GreekGamma        195
+\definecharacter GreekDelta        196
+\definecharacter GreekEpsilon      197
+\definecharacter GreekZeta         198
+\definecharacter GreekEta          199
+\definecharacter GreekTheta        200
+\definecharacter GreekIota         201
+\definecharacter GreekKappa        202
+\definecharacter GreekLamda        203
+\definecharacter GreekMu           204
+\definecharacter GreekNu           205
+\definecharacter GreekXi           206
+\definecharacter GreekOmicron      207
+\definecharacter GreekPi           208
+\definecharacter GreekRho          209
+\definecharacter GreekSigma        211
+\definecharacter GreekTau          212
+\definecharacter GreekUpsilon      213
+\definecharacter GreekPhi          214
+\definecharacter GreekChi          215
+\definecharacter GreekPsi          216
+\definecharacter GreekOmega        217
+
+%
+% Lowercase Greek letters
+%
+
+\definecharacter Greekalpha        225
+\definecharacter Greekbeta         226
+\definecharacter Greekgamma        227
+\definecharacter Greekdelta        228
+\definecharacter Greekepsilon      229
+\definecharacter Greekzeta         230
+\definecharacter Greeketa          231
+\definecharacter Greektheta        232
+\definecharacter Greekiota         233
+\definecharacter Greekkappa        234
+\definecharacter Greeklamda        235
+\definecharacter Greekmu           236
+\definecharacter Greeknu           237
+\definecharacter Greekxi           238
+\definecharacter Greekomicron      239
+\definecharacter Greekpi           240
+\definecharacter Greekrho          241
+\definecharacter Greekfinalsigma   242
+\definecharacter Greeksigma        243
+\definecharacter Greektau          244
+\definecharacter Greekupsilon      245
+\definecharacter Greekphi          246
+\definecharacter Greekchi          247
+\definecharacter Greekpsi          248
+\definecharacter Greekomega        249
+
+%
+% Accented Uppercase Greek letters
+%
+
+\definecharacter GreekAlphatonos        182
+\definecharacter GreekEpsilontonos      184
+\definecharacter GreekEtatonos          185
+\definecharacter GreekIotatonos         186
+\definecharacter GreekOmicrontonos      188
+\definecharacter GreekUpsilontonos      190
+\definecharacter GreekOmegatonos        191
+\definecharacter GreekIotadialytika     218
+\definecharacter GreekUpsilondialytika  219
+
+%
+% Accented Lowercase Greek letters
+%
+
+\definecharacter Greekalphatonos             220   
+\definecharacter Greekepsilontonos           221   
+\definecharacter Greeketatonos               222   
+\definecharacter Greekiotatonos              223   
+\definecharacter Greekomicrontonos           252   
+\definecharacter Greekupsilontonos           253    
+\definecharacter Greekomegatonos             254
+\definecharacter Greekiotadialytika          250
+\definecharacter Greekupsilondialytika       251
+\definecharacter Greekiotadialytikatonos     192
+\definecharacter Greekupsilondialytikatonos  224
+
+%
+% Miscellaneous Greek symbols
+%
+
+\definecharacter Greekleftquot               171
+\definecharacter Greekrightquot              187
+\definecharacter Greektonos                  180
+\definecharacter Greekdialytikatonos         181
+\definecharacter Greekapostrophos            162
+
+\stopencoding 
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index fa9e940f7..43a19be3c 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -357,8 +357,8 @@
           \rotate[\c!rotatie=270]{\box\scratchbox}%
         \fi
         \hss}%
-     \ht\scratchbox\unicodeheight\ht\strutbox
-     \dp\scratchbox\unicodedepth \dp\strutbox
+     \ht\scratchbox\unicodeheight\strutht
+     \dp\scratchbox\unicodedepth \strutdp
      \ifvmode % catches \hbox{...}, actually \hbox should be \vbox -)
        \nointerlineskip
      \fi
diff --git a/tex/context/base/font-run.tex b/tex/context/base/font-run.tex
index 20b720c8c..9b81ac140 100644
--- a/tex/context/base/font-run.tex
+++ b/tex/context/base/font-run.tex
@@ -37,9 +37,9 @@
      {\dosetshowfonttitle{#1}%
       \def\bigstrut##1##2%
         {\hbox{\vrule
-           \!!height ##1\ht\strutbox
-           \!!depth  ##2\dp\strutbox
-           \!!width  \!!zeropoint}}
+           \!!height##1\strutht
+           \!!depth ##2\strutdp
+           \!!width \zeropoint}}
       \def\next##1##2##3%
         {&&##1&&##2\tf##3&&##2\sc##3%
          &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3%
@@ -144,15 +144,15 @@
                     {\tf\vbox to 2.5em
                        {\vss
                         \hbox to 2.5em
-                          {\dummy\ifdim\fontdimen2\font=\!!zeropoint
-                           \setbox\scratchbox=\hbox
-                             {\raise.5\dp\scratchbox\hbox
-                                {\lower.5\ht\scratchbox\copy\scratchbox}}%
+                          {\dummy\ifdim\fontdimen2\font=\zeropoint
+                             \setbox\scratchbox\hbox
+                               {\raise.5\dp\scratchbox\hbox
+                                  {\lower.5\ht\scratchbox\copy\scratchbox}}%
                              \ht\scratchbox\zeropoint
                              \dp\scratchbox\zeropoint
                            \else
-                             \ht\scratchbox\ht\strutbox
-                             \dp\scratchbox\dp\strutbox
+                             \ht\scratchbox\strutht
+                             \dp\scratchbox\strutdp
                              \strut
                            \fi
                            \hss\copy\scratchbox\hss}
diff --git a/tex/context/base/font-uni.tex b/tex/context/base/font-uni.tex
index a114c0882..269c0f771 100644
--- a/tex/context/base/font-uni.tex
+++ b/tex/context/base/font-uni.tex
@@ -372,15 +372,15 @@
 \def\dosetunicodestrut#1#2% height depth
   {\def\unicodestrut
      {\vrule
-        \!!width\zeropoint
-        \!!height#1\ht\strutbox
-        \!!depth#2\dp\strutbox
+        \!!width \zeropoint
+        \!!height#1\strutht
+        \!!depth #2\strutdp
         \relax}}
 
 \def\setunicodestrut#1#2% height depth
-  {\ifdim#1\ht\strutbox>\zeropoint
+  {\ifdim#1\strutht>\zeropoint
      \dosetunicodestrut{#1}{#2}%
-   \else\ifdim#1\dp\strutbox>\zeropoint
+   \else\ifdim#1\strutdp>\zeropoint
      \dosetunicodestrut{#1}{#2}%
    \else
      \let\unicodestrut\empty
diff --git a/tex/context/base/m-educat.tex b/tex/context/base/m-educat.tex
index 01e156797..0951ee055 100644
--- a/tex/context/base/m-educat.tex
+++ b/tex/context/base/m-educat.tex
@@ -73,7 +73,7 @@
 \def\setupanswerarea
   {\setuptextbackground[\v!answerarea]}
 
-\def\answerspace
+\setvalue\e!answerspace
   {\dosingleempty\doanswerspace}
 
 \def\doanswerspace[#1]%
@@ -181,7 +181,7 @@
    \getvalue{\e!stop\v!answerarea}%
    \par\endgroup\endgroup} 
 
-\def\answerlines
+\setvalue\e!answerlines
   {\dosingleempty\doanswerlines}
 
 \def\doanswerlines[#1]#2%
diff --git a/tex/context/base/m-plus.tex b/tex/context/base/m-plus.tex
new file mode 100644
index 000000000..cd3a72757
--- /dev/null
+++ b/tex/context/base/m-plus.tex
@@ -0,0 +1,29 @@
+%D \module
+%D   [       file=m-plus,
+%D        version=2003.03.16,
+%D          title=\CONTEXT\ Extra Modules,
+%D       subtitle=Loading extra features, 
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D Somewhere in 2001 i started collecting new functionality 
+%D in a module \type {m-yesno}. As the name suggests, I was 
+%D not entirely sure if this functionality belonged in the 
+%D kernel. When (again) on the \CONTEXT\ list a request for 
+%D side bars was posted, I decided to move such code to plus 
+%D modules. Users who want this additional functionality can
+%D put the following call in their \type {cont-sys.tex} file: 
+%D 
+%D \starttyping
+%D \usemodule[plus]
+%D \stoptyping 
+
+\readfile {plus-rul} \donothing \donothing 
+\readfile {plus-pag} \donothing \donothing 
+
+\endinput 
diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex
index c6a8ba11d..6dc0ab5b9 100644
--- a/tex/context/base/mult-com.tex
+++ b/tex/context/base/mult-com.tex
@@ -804,24 +804,28 @@ stelnummerin: stelnummerin setupnumber
                                   ran                              ran
                                   ran                              ran
 % new
+                 defineitemgroup: definieeritemgroep               defineitemgroup  
+                                  defineitemgroup                  defineitemgroup  
+                                  defineitemgroup                  defineitemgroup                   
+                  setupitemgroup: stelitemgroepin                  setupitemgroup
+                                  setupitemgroup                   setupitemgroup
+                                  setupitemgroup                   setupitemgroup
                  setupitemgroups: stelitemgroepenin                setupitemgroups
                                   setupitemgroups                  setupitemgroups
                                   setupitemgroups                  setupitemgroups
 
-                                  % downward compatible definitions
-
-                 setupitemgroups: stelopsommingenin                setupitemizations
-                                  stelleaufzaehlungenein           nastavvycty
-                                  impostaelencazioni               setareitemization
-                    startitemize: startopsomming                   startitemize
-                                  startaufzaehlung                 startvycet
-                                  iniziaelenco                     startenumerare
-                    setupitemize: stelopsommingin                  setupitemize
-                                  stelleaufzaehlungein             nastavvycet
-                                  impostaelenco                    setareenumerare
-                     stopitemize: stopopsomming                    stopitemize
-                                  stopaufzaehlung                  stopvycet
-                                  terminaelenco                    stopenumerare
+%                 setupitemgroups: stelopsommingenin                setupitemizations
+%                                  stelleaufzaehlungenein           nastavvycty
+%                                  impostaelencazioni               setareitemization
+%                    startitemize: startopsomming                   startitemize
+%                                  startaufzaehlung                 startvycet
+%                                  iniziaelenco                     startenumerare
+%                    setupitemize: stelopsommingin                  setupitemize
+%                                  stelleaufzaehlungein             nastavvycet
+%                                  impostaelenco                    setareenumerare
+%                     stopitemize: stopopsomming                    stopitemize
+%                                  stopaufzaehlung                  stopvycet
+%                                  terminaelenco                    stopenumerare
 
                                   % so far
 
@@ -1148,9 +1152,15 @@ listsymbol: lijstsymbool listsymbol
                       placefloat: plaatsplaatsblok                 placefloat
                                   placefloat                       placefloat
                                   placefloat                       placefloat %%%
-movesidefloat: verplaatszijblok  movesidefloat
-               movesidefloat     movesidefloat
-               movesidefloat     movesidefloat
+  movesidefloat: verplaatszijblok                 movesidefloat
+                 movesidefloat                    movesidefloat
+                 movesidefloat                    movesidefloat
+defineplacement: definieerplaats                  defineplacement
+                 defineplacement                  defineplacement
+                 defineplacement                  defineplacement
+ setupplacement: stelplaatsin                     setupplacement
+                 setupplacement                   setupplacement
+                 setupplacement                   setupplacement
                definecombination: definieercombinatie              definecombination
                                   definecombination                definecombination
                                   definecombination                definecombination
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 7e34cb065..b5661567b 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -315,6 +315,9 @@
                    spraak: spraak                    speech 
                            speech                    speech 
                            speech                    speech 
+                  itemize: opsomming                 itemize
+                           aufzaehlung               vycet
+                           elenco                    enumerare
 
 \stopvariables
 
@@ -445,6 +448,9 @@ clipoffset: clipoffset   clipoffset
                    auteur: auteur                    author
                            autor                     autor
                            autore                    autor
+                     auto: auto                      auto
+                           auto                      auto
+                           auto                      auto
                  autofile: autofile                  autofile
                            autofile                  autofile
                            autofile                  autofile % TB TH
@@ -529,9 +535,9 @@ clipoffset: clipoffset   clipoffset
           dieptecorrectie: dieptecorrectie           depthcorrection
                            tiefekorrektur            korekcehloubky
                            correzioneprofondita      corectieadancime
-                    dikte: dikte                     thickness
-                           dicke                     tloustka
-                           spessore                  grosime
+%                    dikte: dikte                     thickness
+%                           dicke                     tloustka
+%                           spessore                  grosime
                  doorgaan: doorgaan                  continue
                            fortsetzen                pokracovat
                            continua                  continua
@@ -1412,9 +1418,6 @@ trefwoord: trefwoord keyword
                   breedte: breedte                   width
                            breite                    sirka
                            ampiezza                  latime
-                   buffer: buffer                    buffer
-                           puffer                    buffer
-                           buffer                    buffer
                    buiten: buiten                    outer
                            aussen                    vnejsi
                            esterno                   extern
@@ -2311,6 +2314,21 @@ geencontrole: geencontrole  nocheck
                framedtext: kadertekst                framedtext
                            umrahmtertext             oramovanytext
                            testoincorniciato         textinconjurat
+                itemgroup: itemgroup                 itemgroup
+                           itemgroup                 itemgroup
+                           itemgroup                 itemgroup         
+                    typen: typen                     typing
+                           tippen                    typing
+                           typing                    typing % GB
+                   buffer: buffer                    buffer
+                           puffer                    buffer
+                           buffer                    buffer
+                  formule: formule                   formula
+                           formel                    rovnice
+                           formula                   formula
+                 tabulate: tabulatie                 tabulate
+                           tabulator                 tabelator
+                           tabulato                  tabulate
 
 \stopsetupvariables
 
@@ -2329,18 +2347,9 @@ geencontrole: geencontrole  nocheck
                  beginvan: beginvan                  begin
                            anfang                    zacatek
                            inizio                    inceput
-                   buffer: buffer                    buffer
-                           puffer                    buffer
-                           buffer                    buffer
-               commentaar: commentaar                comment
-                           kommentar                 komentar
-                           commento                  comentariu
                   eindvan: eindvan                   end
                            ende                      konec
                            fine                      sfarsit
-                  formule: formule                   formula
-                           formel                    rovnice
-                           formula                   formula
                gekoppelde: gekoppelde                coupled
                            verknuepft                propojene
                            accoppiato                cuplat
@@ -2353,15 +2362,6 @@ geencontrole: geencontrole  nocheck
                        in: in                        -
                            ein                       -
                            -                         -
-             instellingen: instellingen              setups
-                           impostazioni              einstellungen
-                           nastaveni                 setari
-           interactiemenu: interactiemenu            interactionmenu
-                           interaktionsmenue         interaktivnimenu
-                           menuinterattivo           meniuinteractiune
-                  itemize: opsomming                 itemize
-                           aufzaehlung               vycet
-                           elenco                    enumerare
                      laad: laad                      load
                            laden                     nacist
                            carica                    incarca
@@ -2380,9 +2380,6 @@ geencontrole: geencontrole  nocheck
                    lokale: lokale                    local
                            lokal                     lokalne
                            locale                    local
-                   opmaak: opmaak                    makeup
-                           umbruch                   zlom
-                           makeup                    makeup % GB
                    plaats: plaats                    place
                            platziere                 umisti
                            metti                     pune
@@ -2398,33 +2395,6 @@ geencontrole: geencontrole  nocheck
                      stop: stop                      stop
                            stop                      stop
                            termina                   stop
-                tablehead: tabelkop                  tablehead
-                           tabellenueberschrift      zahlavitabulky
-                           testatabella              antettabel
-                tabletail: tabelstaart               tabletail
-                           tabellenende              konectabulky
-                           codatabella               subsoltabel
-                 tabulate: tabulatie                 tabulate
-                           tabulator                 tabelator
-                           tabulato                  tabulate
-             tabulatehead: tabulatiekop              tabulatehead
-                           tabulatehead              tabulatehead
-                           testatabulato             tabulatehead %
-             tabulatetail: tabulatiestaart           tabulatetail
-                           tabulatetail              tabulatetail
-                           codatabulato              tabulatetail %
-                    tekst: tekst                     text
-                           text                      text
-                           testo                     text
-                     type: type                      type
-                           type                      opis
-                           type                      type % GB
-               uitstellen: uitstellen                postponing
-                           verschieben               odlozit
-                           posporre                  postponing % GB
-                verbergen: verbergen                 hiding
-                           verbergen                 skryt
-                           nascondere                ascundere
                   verhoog: verhoog                   increment
                            erhoehen                  zvysit
                            incrementa                increment
@@ -2443,33 +2413,83 @@ geencontrole: geencontrole  nocheck
                       zie: zie                       see
                            sieh                      viz
                            vedi                      vezi
-                 register: register                  register
-                           register                  rejstrik
-                           registro                  registru
+                     type: type                      type
+                           type                      opis
+                           type                      type % GB
+                   opmaak: opmaak                    makeup
+                           umbruch                   zlom
+                           makeup                    makeup % GB
+                    tekst: tekst                     text
+                           text                      text
+                           testo                     text
+
+\stopelements
+
+%D These are predefined instances. To be cleaned up.  
+
+\startvariables            dutch                     english
+                           german                    czech
+                           italian                   romanian
+
+                   buffer: buffer                    buffer
+                           puffer                    buffer
+                           buffer                    buffer
+                 linenote: regelnoot                 linenote 
+                           linenote                  linenote
+                           linenote                  linenote
+               commentaar: commentaar                comment
+                           kommentar                 komentar
+                           commento                  comentariu
+           interactiemenu: interactiemenu            interactionmenu
+                           interaktionsmenue         interaktivnimenu
+                           menuinterattivo           meniuinteractiune
+               uitstellen: uitstellen                postponing
+                           verschieben               odlozit
+                           posporre                  postponing % GB
+                verbergen: verbergen                 hiding
+                           verbergen                 skryt
+                           nascondere                ascundere
+                 tabulate: tabulatie                 tabulate
+                           tabulator                 tabelator
+                           tabulato                  tabulate
+             tabulatehead: tabulatiekop              tabulatehead
+                           tabulatehead              tabulatehead
+                           testatabulato             tabulatehead %
+             tabulatetail: tabulatiestaart           tabulatetail
+                           tabulatetail              tabulatetail
+                           codatabulato              tabulatetail %
                   gegeven: gegeven                   fact
                            gegeben                   fakt
                            fatto                     fapt
                   legenda: legenda                   legend
                            legende                   legenda
                            legenda                   legenda
+                  formule: formule                   formula
+                           formel                    rovnice
+                           formula                   formula
+                tablehead: tabelkop                  tablehead
+                           tabellenueberschrift      zahlavitabulky
+                           testatabella              antettabel
+                tabletail: tabelstaart               tabletail
+                           tabellenende              konectabulky
+                           codatabella               subsoltabel
+             instellingen: instellingen              setups
+                           impostazioni              einstellungen
+                           nastaveni                 setari
                  helptext: helptekst                 helptext
                            hilfetext                 textnapovedy
                            testoaiuto                textajutator
-              pagecomment: paginacommentaar          pagecomment
-                           pagecomment               komentarstranky
-                           commentopagina            comentariupagina % TB
-       sectieblokomgeving: sectieblokomgeving        sectionblockenvironment
-                           sectionblockenvironment   sectionblockenvironment
-                           ambientebloccosezione     blocsectiuneambient % TB TH
              deelomgeving: deelomgeving              localenvironment
                            lokaleumgebung            lokalnihoprostredi
                            ambientelocale            mediulocal
+       sectieblokomgeving: sectieblokomgeving        sectionblockenvironment
+                           sectionblockenvironment   sectionblockenvironment
+                           ambientebloccosezione     blocsectiuneambient % TB TH
+              pagecomment: paginacommentaar          pagecomment
+                           pagecomment               komentarstranky
+                           commentopagina            comentariupagina % TB
 
-                 linenote: regelnoot                 linenote 
-                           linenote                  linenote
-                           linenote                  linenote
-
-\stopelements
+\stopvariables
 
 %D \stopcompressdefinitions
 
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 2178d4b26..c99e6e119 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -1056,7 +1056,7 @@
 \newskip\sidefloatleftshift
 \newskip\sidefloatrightshift
 
-\def\sidefloattopoffset         {\openstrutdepth} % {\dp\strutbox}
+\def\sidefloattopoffset         {\openstrutdepth} % {\strutdp}
 
 \newcount\noftopfloats          \noftopfloats=2
 \newcount\nofbotfloats          \nofbotfloats=0
@@ -1145,7 +1145,7 @@
           {\doattributes{\??kj#1}\c!kopletter\c!kopkleur
              {\labeltexts{#1}{\preparednumber}}%
            \doattributes{\??kj#1}\c!tekstletter\c!tekstkleur
-             {\dotfskip\@@kjkjafstand#3}}}%
+             {\dotfskip{\getvalue{\??kj#1\c!afstand}}#3}}}%
     \fi}
 
 \def\placefloatcaptiontext     [#1]{\getvalue{@fl@t@#1}}
@@ -1258,8 +1258,10 @@
              \dopreparestackcaptionmin{#1}{#2}{#3}{#4}%
            \fi}}%
      \edef\width{\the\wd\tempfloatbox}%
-\doglobal\addlocalbackgroundtobox\tempfloatbox
-\doglobal\addlocalbackgroundtobox\tempcaptionbox
+%\doglobal 
+\addlocalbackgroundtobox\tempfloatbox
+%\doglobal 
+\addlocalbackgroundtobox\tempcaptionbox
       \buildfloatbox
    \fi
 %   \doglobal\addlocalbackgroundtobox\floatbox
@@ -1381,10 +1383,10 @@
       \processaction
         [\@@kjkjplaats]
         [ \v!boven=>\locatefloat{\box\tempcaptionbox}%
-                    \endgraf\@@kjkjtussen
+                    \endgraf\nointerlineskip\@@kjkjtussen
                     \locatefloat{\box\tempfloatbox},
           \v!onder=>\locatefloat{\box\tempfloatbox}%
-                    \endgraf\@@kjkjtussen
+                    \endgraf\nointerlineskip\@@kjkjtussen
                     \locatefloat{\box\tempcaptionbox},
            \v!hoog=>\locatefloat
                       {\doifelse\@@flflplaats\v!links
@@ -1544,7 +1546,8 @@
    \mindermeldingen
    %\showcomposition
    \setbox\tempfloatbox\vbox{\borderedfloatbox{#4}}%
-\doglobal\addlocalbackgroundtobox\tempfloatbox
+%\doglobal
+\addlocalbackgroundtobox\tempfloatbox
    \ifnofloatcaption
      \global\setbox\floatbox\vbox{\box\tempfloatbox}%
    \else
@@ -1565,14 +1568,21 @@
           {\dosetraggedvbox\@@kjkjuitlijnen
            \setbox\tempcaptionbox\raggedbox
              {\hsize\wd\tempfloatbox\putcompletecaption{#4}{#2}{#3}{0}}}}%
-\doglobal\addlocalbackgroundtobox\tempcaptionbox
+%\doglobal
+\addlocalbackgroundtobox\tempcaptionbox
      \global\setbox\floatbox\vbox
        {\processaction
           [\@@kjkjplaats]
-          [ \v!boven=>\box\tempcaptionbox\endgraf\@@kjkjtussen\box\tempfloatbox,
-            \v!onder=>\box\tempfloatbox\endgraf\@@kjkjtussen\box\tempcaptionbox,
+          [ \v!boven=>\box\tempcaptionbox
+                      \endgraf\nointerlineskip\@@kjkjtussen
+                      \box\tempfloatbox,
+            \v!onder=>\box\tempfloatbox
+                      \endgraf\nointerlineskip\@@kjkjtussen
+                      \box\tempcaptionbox,
              \v!geen=>\box\tempfloatbox,
-          \s!unknown=>\box\tempfloatbox\endgraf\@@kjkjtussen\box\tempcaptionbox]}%
+          \s!unknown=>\box\tempfloatbox
+                      \endgraf\nointerlineskip\@@kjkjtussen
+                      \box\tempcaptionbox]}%
    \fi
 %   \doglobal\addlocalbackgroundtobox\floatbox
    \egroup}
@@ -1924,11 +1934,11 @@
 %      \egroup
 %    \fi\fi}
 % 
-% \setvalue{\e!start\e!uitstellen}%
+% \setvalue{\e!start\v!uitstellen}%
 %   {\doglobal\increment\nofpostponedblocks
 %    \showmessage\m!layouts3\nofpostponedblocks
 %    \dostartbuffer[buf-\nofpostponedblocks]
-%      [\e!start\e!uitstellen][\e!stop\e!uitstellen]}
+%      [\e!start\v!uitstellen][\e!stop\v!uitstellen]}
 
 % \startpostponing [pagenumber] [+pageoffset]
 % 
@@ -1983,7 +1993,7 @@
 
 % beware, \dosingleempty conflicts with buffers (feeds back the \par)
 
-\setvalue{\e!start\e!uitstellen}%
+\setvalue{\e!start\v!uitstellen}%
   {\bgroup
    \obeylines
    \doifnextcharelse[%
@@ -1998,13 +2008,13 @@
    \egroup
    \showmessage\m!layouts3\nofpostponedpageblocks
    \dostartbuffer[rbuf-\nofpostponedpageblocks]%
-     [\e!start\e!uitstellen][\e!stop\e!uitstellen]}
+     [\e!start\v!uitstellen][\e!stop\v!uitstellen]}
 
 \def\dodostartpostponing
   {\doglobal\increment\nofpostponedblocks
    \showmessage\m!layouts3\nofpostponedblocks
    \dostartbuffer[pbuf-\nofpostponedblocks]%
-     [\e!start\e!uitstellen][\e!stop\e!uitstellen]}
+     [\e!start\v!uitstellen][\e!stop\v!uitstellen]}
 
 \definieernummer
   [\??si]
diff --git a/tex/context/base/page-imp.tex b/tex/context/base/page-imp.tex
index f35b08bf2..8d318b4b0 100644
--- a/tex/context/base/page-imp.tex
+++ b/tex/context/base/page-imp.tex
@@ -1081,11 +1081,11 @@
         {\setuppapersize[\c!links=\hskip\@@pcoffset]%
          \adddimenmacro\papierhoogte\@@pcoffset\@@pcoffset\@@pcafstand\@@pchoogte\to\@@pcpaperheight
          \adddimenmacro\papierbreedte\@@pcoffset\@@pcoffset\to\@@pcpaperwidth
-         \defineoverlay[pagecomment][\placepagecommentTB]}
+         \defineoverlay[\v!pagecomment][\placepagecommentTB]}
         {\setuppapersize[\c!boven=\vskip\@@pcoffset]%
          \adddimenmacro\papierhoogte\@@pcoffset\@@pcoffset\to\@@pcpaperheight
          \adddimenmacro\papierbreedte\@@pcoffset\@@pcoffset\@@pcafstand\@@pcbreedte\to\@@pcpaperwidth
-         \defineoverlay[pagecomment][\placepagecommentLR]}%
+         \defineoverlay[\v!pagecomment][\placepagecommentLR]}%
       \processaction
         [\@@pcplaats]
         [ \v!onder=>{\setuppapersize[\c!onder =\vss,\c!boven =\vskip\@@pcoffset]},
@@ -1093,12 +1093,12 @@
           \v!links=>{\setuppapersize[\c!links =\hss,\c!rechts=\hskip\@@pcoffset]},
          \v!rechts=>{\setuppapersize[\c!rechts=\hss,\c!links =\hskip\@@pcoffset]}]%
       \definepapersize
-        [commentedpage]
+        [\v!pagecomment]
         [\c!hoogte=\@@pcpaperheight,
          \c!breedte=\@@pcpaperwidth]%
       \let\@@pcprintpapersize\printpapersize
-      \setuppapersize[\papersize][commentedpage]%
-      \setupbackgrounds[\v!papier][\c!achtergrond=pagecomment]}
+      \setuppapersize[\papersize][\v!pagecomment]%
+      \setupbackgrounds[\v!papier][\c!achtergrond=\v!pagecomment]}
     {\doif\@@pcstatus\v!stop % else initialization  invokes backgrounds
        {% this should be tested first
         % \expanded{\setuppapersize[\papersize][\@@pcprintpapersize]}%
@@ -1117,7 +1117,7 @@
         {\forgetall
          \hsize\papierbreedte
          \ifpagecomment
-           \haalbuffer[pagecomm]
+           \getbuffer[\v!pagecomment]%
            \global\pagecommentfalse
          \fi}%
       \hfill
@@ -1133,7 +1133,7 @@
          \vskip\@@pcoffset
          \hsize\@@pcbreedte
          \ifpagecomment
-           \haalbuffer[pagecomm]
+           \getbuffer[\v!pagecomment]% 
            \global\pagecommentfalse
          \fi
          \vss}%
@@ -1142,9 +1142,9 @@
 
 \newif\ifpagecomment
 
-\setvalue{\e!start\e!pagecomment}%
+\setvalue{\e!start\v!pagecomment}%
   {\global\pagecommenttrue
-   \dostartbuffer[pagecomm][\e!start\e!pagecomment][\e!stop\e!pagecomment]}
+   \dostartbuffer[\v!pagecomment][\e!start\v!pagecomment][\e!stop\v!pagecomment]}
 
 \setuppagecomment
   [\c!status=, % \v!stop would invoke background calculation
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
index 167f59af8..4b59577c3 100644
--- a/tex/context/base/page-ini.tex
+++ b/tex/context/base/page-ini.tex
@@ -562,6 +562,12 @@
      13: blocul lat este mutat in partea de sus a coloanelor
 \stopmessages
 
+\ifx\dosetuplayout\undefined % overloaded in page-lay ! 
+
+  \def\setuplayout{\dodoubleempty\getparameters[\??ly]}
+
+\fi 
+
 %D In case we're not running \ETEX, we need to bypass a 
 %D couple of primitives.  
 
@@ -1198,6 +1204,63 @@
 
 \newif\ifsavepagebody \newbox\savedpagebody
 
+% \def\buildpagebody#1#2%
+%   {\ifsavepagebody\global\setbox\savedpagebody\fi 
+%    \vbox
+%      {\beginrestorecatcodes
+%       \forgetall  % igv problemen, check: \boxmaxdepth\maxdimen
+%       \boxmaxdepth\maxdimen % new
+%       \mindermeldingen
+%       \setbox\pagebox\vbox
+%         {\offinterlineskip
+%          \ifpagebodyornaments
+% %           \getbackgroundbox
+% %           \getlogobox
+%            \bgroup % else footnotes get inconsistent font/baseline
+%            % \doconvertfont\@@lyletter\empty 
+%              \dostartattributes\??ly\c!letter\c!kleur\empty
+%                \offinterlineskip 
+%                \gettextboxes
+%              \dostopattributes
+%            \egroup
+%          \fi
+%          \getmainbox#1#2}% including footnotes 
+%       \ifpagebodyornaments
+%         \addmainbackground \pagebox
+%         \addlogobackground \pagebox
+%       \fi
+%       \buildpagebox        \pagebox
+%       \addstatusinfo       \pagebox
+%       \ifpagebodyornaments
+%         \addpagebackground \pagebox
+%       \fi
+%       \registerpageposition\pagebox
+%       \ifarrangingpages 
+%         \shiftpaperpagebox \pagebox % \v!papier
+%       \else
+%         \clippagebox       \pagebox
+%         \addpagecutmarks   \pagebox   
+%         \replicatepagebox  \pagebox
+%         \scalepagebox      \pagebox
+%         \mirrorpaperbox    \pagebox
+%         \rotatepaperbox    \pagebox
+%         \addpagecolormarks \pagebox 
+%         \centerpagebox     \pagebox
+%         \addprintbackground\pagebox
+%         \mirrorprintbox    \pagebox
+%         \rotateprintbox    \pagebox
+%         \shiftprintpagebox \pagebox % \v!pagina
+%         \offsetprintbox    \pagebox
+%         \negateprintbox    \pagebox
+%       \fi
+%       \box\pagebox
+%       \endrestorecatcodes}%
+%    \ifsavepagebody\copy\savedpagebody\fi}
+
+% beware, \??ly is used before defined, i.e. bad module design 
+
+\setuplayout[\c!methode=\v!normaal]
+
 \def\buildpagebody#1#2%
   {\ifsavepagebody\global\setbox\savedpagebody\fi 
    \vbox
@@ -1205,26 +1268,11 @@
       \forgetall  % igv problemen, check: \boxmaxdepth\maxdimen
       \boxmaxdepth\maxdimen % new
       \mindermeldingen
-      \setbox\pagebox\vbox
-        {\offinterlineskip
-         \ifpagebodyornaments
-%           \getbackgroundbox
-%           \getlogobox
-           \bgroup % else footnotes get inconsistent font/baseline
-           % \doconvertfont\@@lyletter\empty 
-             \dostartattributes\??ly\c!letter\c!kleur\empty
-               \offinterlineskip 
-               \gettextboxes
-             \dostopattributes
-           \egroup
-         \fi
-         \getmainbox#1#2}% including footnotes 
-      \ifpagebodyornaments
-        \addmainbackground \pagebox
-        \addlogobackground \pagebox
-      \fi
-      \buildpagebox        \pagebox
-      \addstatusinfo       \pagebox
+      % the following plugin uses and sets pagebox; beware: this
+      % will change and is for my (hh) personal experiments
+      \executeifdefined{\??ly\c!methode\@@lymethode}%
+        {\getvalue{\??ly\c!methode\v!normaal}}#1#2% 
+      % the finishing touch 
       \ifpagebodyornaments
         \addpagebackground \pagebox
       \fi
@@ -1251,6 +1299,25 @@
       \endrestorecatcodes}%
    \ifsavepagebody\copy\savedpagebody\fi}
 
+\setvalue{\??ly\c!methode\v!normaal}#1#2%
+  {\setbox\pagebox\vbox
+     {\offinterlineskip
+      \ifpagebodyornaments
+        \bgroup % else footnotes get inconsistent font/baseline
+          \dostartattributes\??ly\c!letter\c!kleur\empty
+            \offinterlineskip 
+            \gettextboxes
+          \dostopattributes
+        \egroup
+      \fi
+      \getmainbox#1#2}% including footnotes 
+   \ifpagebodyornaments
+     \addmainbackground \pagebox
+     \addlogobackground \pagebox
+   \fi
+   \buildpagebox  \pagebox
+   \addstatusinfo \pagebox}
+
 \def\finishpagebox#1%
   {\ifarrangingpages
      \addpagecutmarks  #1% 
@@ -1684,13 +1751,13 @@
        \ht\registertextbox\ht#3%
        \dp\registertextbox\dp#3%
        \ifcase#1\or % 1
-         \setbox\registertextbox\hbox{\lower\dp\strutbox\box\registertextbox}%
+         \setbox\registertextbox\hbox{\lower\strutdp\box\registertextbox}%
        \fi
        \ifcase#2\or % 1 
-         \setbox\registertextbox\hbox{\raise\topskip\hbox{\lower\ht\strutbox\box\registertextbox}}%
-         \dp\registertextbox\dp\strutbox
+         \setbox\registertextbox\hbox{\raise\topskip\hbox{\lower\strutht\box\registertextbox}}%
+         \dp\registertextbox\strutdp
        \fi
-       \dp\registertextbox\dp\strutbox % needed 
+       \dp\registertextbox\strutdp % needed 
       %\setbox\registertextbox\hbox
       %  {\iftracetextareas\gray\boxrulewidth2pt\ruledhbox\fi
       %   {\registerMPtextarea{\box\registertextbox}}}%
diff --git a/tex/context/base/page-lin.tex b/tex/context/base/page-lin.tex
index 12af9dc27..8038e45b9 100644
--- a/tex/context/base/page-lin.tex
+++ b/tex/context/base/page-lin.tex
@@ -269,7 +269,7 @@
 
 %\def\regelreferentie#1[#2]%
 %  {\bgroup
-%   \dimen0=\dp\strutbox
+%   \dimen0\strutdp
 %   \doif{\@@rnrefereren}{\v!aan}
 %     {\doglobal\increment\linereference
 %      % start 1=>(n=y,l=0,p=1)
@@ -285,7 +285,7 @@
 
 \def\regelreferentie#1[#2]%
   {\bgroup
-   \dimen0=\dp\strutbox
+   \dimen0=\strutdp
    \doif\@@rnrefereren\v!aan
      {\doglobal\increment\linereference
       % start 1=>(n=y,l=0,p=1)
@@ -307,7 +307,7 @@
      {\reshapebox % We are going back!
         {\global\advance\linenumber \minusone
          \dimen0=\dp\shapebox
-         \advance\dimen0 -\dp\strutbox\relax
+         \advance\dimen0 -\strutdp\relax
          \ifdim\dimen0>\zeropoint
            % 1=>4 | 2=>4 1=>2
            % start 1=>(n=y,l=2,p=1)
@@ -354,9 +354,9 @@
                      {\referenceprefix\linereferencename}{}{}{0}}% ==done
                  \fi}%
               \dimen0\dp\shapebox
-              \advance\dimen0 -\dp\strutbox\relax
+              \advance\dimen0 -\strutdp\relax
               \ifdim\dimen0>\zeropoint
-                \dp\shapebox\dp\strutbox
+                \dp\shapebox\strutdp
               \fi
               \schrijfregelnummer\box\shapebox}}% no \strut !
       \else
diff --git a/tex/context/base/page-mar.tex b/tex/context/base/page-mar.tex
index 5109446b1..3447a9f4d 100644
--- a/tex/context/base/page-mar.tex
+++ b/tex/context/base/page-mar.tex
@@ -57,7 +57,7 @@
 \def\margetekstnummer     {0}
 \let\margetekstscheider = \empty
 
-\def\margestrutheight{\ht\strutbox}
+\def\margestrutheight{\strutht}
 
 \def\maakmargetekstblok#1#2#3#4#5#6%
   {#4\relax
@@ -92,11 +92,11 @@
       \@@imvoor
       \dostartattributes{\??im\margetekstnummer}\c!letter\c!kleur\empty
         \dorecurse\margetekstregels{\strut\\}%
-        \xdef\margestrutheight{\the\ht\strutbox}%
+        \xdef\margestrutheight{\the\strutht}%
         \begstrut#6\endstrut\endgraf
       \dostopattributes
       \@@imna}%
-   \ht0\ht\strutbox
+   \ht0\strutht
    \box0
    \egroup
    #5\relax}
@@ -131,17 +131,17 @@
    \setbox0\hbox
      {#2{\hskip#3\strut
          \iflowinmargin\else
-           \dimen0\dp\strutbox
+           \dimen0\strutdp
            \advance\dimen0 \margestrutheight
-           \advance\dimen0 -\ht\strutbox
+           \advance\dimen0 -\strutht
            \raise\dimen0
          \fi
          \box0}}%
    \ht0\zeropoint
    \dp0\zeropoint
-   \gdef\margestrutheight{\the\ht\strutbox}%
+   \gdef\margestrutheight{\the\strutht}%
   %\graphicvadjust{\box0}} % fails in high math lines, let it be  
-  %\hbox{\lower\dp\strutbox\box0}} % alas, wrong lapping, therefore useless 
+  %\hbox{\lower\strutdp\box0}} % alas, wrong lapping, therefore useless 
    \dopositionmarginbox0}
 
 %D This approach permits us to implement a better mechanism 
@@ -562,7 +562,7 @@
   {\egroup
    \global\setbox\facingpage\vbox
      {\ifvoid\facingpage
-        \vskip\openstrutdepth % \dp\strutbox
+        \vskip\openstrutdepth % \strutdp
       \else
         \unvbox\facingpage
       \fi
diff --git a/tex/context/base/page-mul.tex b/tex/context/base/page-mul.tex
index cc14f168e..9536114a2 100644
--- a/tex/context/base/page-mul.tex
+++ b/tex/context/base/page-mul.tex
@@ -809,15 +809,15 @@
      \ifnotespresent
        \bgroup
        \scratchdimen\ht\firstcolumnbox
-       \advance\scratchdimen -\openstrutdepth % \dp\strutbox
+       \advance\scratchdimen -\openstrutdepth % \strutdp
        \getnoflines\scratchdimen
        \advance\noflines -2
        \scratchdimen\noflines\lineheight
        \advance\scratchdimen \topskip
        \setbox0\hbox
          {\lower\scratchdimen\vbox{\placefootnoteinserts}}%
-       \ht0=\openstrutheight % \ht\strutbox
-       \dp0=\openstrutdepth  % \dp\strutbox
+       \ht0=\openstrutheight % \strutht
+       \dp0=\openstrutdepth  % \strutdp
        \scratchdimen\ht\lastcolumnbox
        \global\setbox\lastcolumnbox\vbox to \scratchdimen
          {\box\lastcolumnbox
@@ -856,8 +856,8 @@
             {\dimen0\dp\currentcolumnbox
              \unvbox\currentcolumnbox
              \vskip-\dimen0
-             \vskip\openstrutdepth % \dp\strutbox
-             \prevdepth\openstrutdepth % \dp\strutbox
+             \vskip\openstrutdepth % \strutdp
+             \prevdepth\openstrutdepth % \strutdp
              \vfill}}%
        \ifbottomnotes \else
          \dimen0\ht\firstcolumnbox
diff --git a/tex/context/base/page-new.tex b/tex/context/base/page-new.tex
index b5f9faf43..342d5c81d 100644
--- a/tex/context/base/page-new.tex
+++ b/tex/context/base/page-new.tex
@@ -11,9 +11,9 @@
   {\bgroup
    \donefalse
    \def\OTRSETcheckcontent##1%
-     {\setbox\scratchbox=##1\recurselevel
-      \setbox\scratchbox=\vbox{\unvbox\scratchbox}%
-      \ifdim\ht\scratchbox>\!!zeropoint\donetrue\fi}%
+     {\setbox\scratchbox##1\recurselevel
+      \setbox\scratchbox\vbox{\unvbox\scratchbox}%
+      \ifdim\ht\scratchbox>\zeropoint\donetrue\fi}%
    \dorecurse{\nofcolumns}
      {\OTRSETcheckcontent\columngettextbox
       \OTRSETcheckcontent\columngetfootbox
@@ -25,12 +25,12 @@
   {\scratchdimen=\OTRSETgetparameter\c!maxhoogte#1%
    \advance\scratchdimen -\OTRSETgetparameter\c!bovenoffset#1%
    \advance\scratchdimen -\ht\columntopbox#1%
-\advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
+   \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
    \advance\scratchdimen -\ht\columnbotbox#1} % not used 
 
 \def\OTRSETgetcolumnnaturalheight#1% max - boven - top
-  {\setbox\scratchbox=\vbox{\unvcopy\columntextbox#1}%
-   \scratchdimen=\ht\scratchbox
+  {\setbox\scratchbox\vbox{\unvcopy\columntextbox#1}%
+   \scratchdimen\ht\scratchbox
    \advance\scratchdimen \OTRSETgetparameter\c!bovenoffset#1%
    \advance\scratchdimen \ht\columntopbox#1%
    \advance\scratchdimen -\getvalue{\??mc\number\mofcolumns-f}%
@@ -42,8 +42,8 @@
    % collect content and notes
    \bgroup
    \OTRSEToutput
-     {\global\setbox1=\vbox{\unvbox\normalpagebox}%
-      \global\setbox3=\vbox{\unvbox\footins}}%
+     {\global\setbox1\vbox{\unvbox\normalpagebox}%
+      \global\setbox3\vbox{\unvbox\footins}}%
    \vbox{\toonstruts\strut}\vskip-\lineheight % makes footnotes flush  
    \eject
    \global\collectingcontentfalse
@@ -52,18 +52,18 @@
      \global\setbox1=\vbox{}
      % fix height of first line 
      \ifdim\ht3>\!!zeropoint
-       \global\setbox3=\vbox
+       \global\setbox3\vbox
          {\setfootnotebodyfont
-          \kern-\ht\strutbox
+          \kern-\strutht
           \kern\topskip
           \unvbox3}
    \fi
    % prepare trial box 
-   \global\setbox5=\vbox
-     {\ifdim\ht1>\!!zeropoint 
+   \global\setbox5\vbox
+     {\ifdim\ht1>\zeropoint 
         \unvcopy1 \ifdim\ht3>\zeropoint \kern\skip\footins \fi
       \fi
-      \ifdim\ht3>\!!zeropoint \unvcopy3 \fi}
+      \ifdim\ht3>\zeropoint \unvcopy3 \fi}
    \egroup
    % erase old stuff 
    \columnerasetextboxes
@@ -72,11 +72,11 @@
    \OTRSETdotopinsertions
    \OTRSETdobotinsertions % not used can be removed 
    % calculate available space
-   \!!heighta=\!!zeropoint % available total height
+   \!!heighta\zeropoint % available total height
    \dorecurse{\nofcolumns}
      {\OTRSETgetcolumntextheight\recurselevel
       \OTRSETcalculatelines\scratchdimen
-      \advance\!!heighta by  \scratchdimen}
+      \advance\!!heighta \scratchdimen}
    % quick check
    \ifdim\ht5>\!!heighta
      % use normal routine
@@ -87,26 +87,26 @@
      \unvbox3 
      \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
      \donefalse
-    %\writestatus{\m!columns}{no balancing, text overflows height}%
-   \else\ifdim\ht5>\!!zeropoint \relax
+    %\writestatus\m!columns{no balancing, text overflows height}%
+   \else\ifdim\ht5>\zeropoint \relax
      % some text and/or notes
      \donetrue
    \else      
      \donefalse
-     \dorecurse{\nofcolumns}
-       {\ifdim\ht\columntopbox\recurselevel>\!!zeropoint \donetrue \fi}%
+     \dorecurse\nofcolumns
+       {\ifdim\ht\columntopbox\recurselevel>\zeropoint \donetrue \fi}%
      \ifdone 
        % no text and notes, but figures  
      \else
        % no text, no notes, no figures 
        \doglobal\addtocommalist{-\realfolio}\OTRSETbalancinglist
-       \writestatus{\m!columns}{no balancing, nothing to be placed}%
+       \writestatus\m!columns{no balancing, nothing to be placed}%
      \fi
    \fi\fi
    \ifdone
-     \ifdim\ht5>\!!zeropoint \relax
+     \ifdim\ht5>\zeropoint \relax
        % balancing text and notes 
-      %\writestatus{\m!columns}{text may fit, balancing}%
+      %\writestatus\m!columns{text may fit, balancing}%
        \newcounter\loopcounter
        \newcounter\balancinglines
        \doloop
@@ -115,22 +115,22 @@
           \columnerasetextboxes
           \columnerasefootboxes
           \setbox0=\copy5 
-          \splittopskip=\topskip
+          \splittopskip\topskip
           % pre-split loop and quality calculation
-         %\writestatus{\m!columns}{pass \loopcounter: correction -\balancinglines}
-          \dorecurse{\nofcolumns}
+         %\writestatus\m!columns{pass \loopcounter: correction -\balancinglines}
+          \dorecurse\nofcolumns
             {\OTRSETgetcolumntextheight\recurselevel
              \OTRSETcalculatelines\scratchdimen
-             \!!heightc=\scratchdimen
+             \!!heightc\scratchdimen
              \ifnum\recurselevel<\nofcolumns
-               \advance\!!heightc by -\balancinglines\lineheight
+               \advance\!!heightc -\balancinglines\lineheight
              \fi
-             \columnsettextbox\recurselevel=\vsplit0 to \!!heightc}
+             \columnsettextbox\recurselevel\vsplit0 to \!!heightc}
           % just one method 
-          \OTRSETgetcolumnnaturalheight1           \dimen4=\scratchdimen
-          \OTRSETgetcolumnnaturalheight\nofcolumns \dimen6=\scratchdimen
-         %\writestatus{\m!columns}{first column: \the\dimen4}%
-         %\writestatus{\m!columns}{last  column: \the\dimen6}%
+          \OTRSETgetcolumnnaturalheight1           \dimen4\scratchdimen
+          \OTRSETgetcolumnnaturalheight\nofcolumns \dimen6\scratchdimen
+         %\writestatus\m!columns{first column: \the\dimen4}%
+         %\writestatus\m!columns{last  column: \the\dimen6}%
           \ifdim\dimen4=\dimen6
             \donetrue  % perfect balance
           \else\ifdim\dimen4>\dimen6
@@ -144,50 +144,50 @@
             \fi
           \fi\fi
           % extra check  
-          % \ifdim\ht0>\!!zeropoint\relax \donefalse \fi
+          % \ifdim\ht0>\zeropoint\relax \donefalse \fi
           % another check 
           \ifdone
-           %\writestatus{\m!columns}{balancing finished in pass \loopcounter}%
+           %\writestatus\m!columns{balancing finished in pass \loopcounter}%
           \else \ifnum\loopcounter>100 \donetrue
-           %\writestatus{\m!columns}{balancing aborted after pass \loopcounter}%
+           %\writestatus\m!columns{balancing aborted after pass \loopcounter}%
           \else
-           %\writestatus{\m!columns}{balancing continued after pass \loopcounter}%
+           %\writestatus\m!columns{balancing continued after pass \loopcounter}%
           \fi \fi
           % final balancing pass
           \ifdone
-            \setbox0=\copy1
-            \setbox2=\copy3
+            \setbox0\copy1
+            \setbox2\copy3
             \columnerasetextboxes
             \columnerasefootboxes
-            \dorecurse{\nofcolumns}
+            \dorecurse\nofcolumns
               {\OTRSETgetcolumntextheight\recurselevel
                \OTRSETcalculatelines\scratchdimen
-               \!!heightc=\scratchdimen
+               \!!heightc\scratchdimen
                \ifnum\recurselevel<\nofcolumns
-                 \advance\!!heightc by -\balancinglines\lineheight
+                 \advance\!!heightc -\balancinglines\lineheight
                \fi
                % split off text 
-               \ifdim\ht0>\!!zeropoint
-                 \columnsettextbox\recurselevel=\vsplit0 to \!!heightc
-                 \setbox4=\vbox{\unvcopy\columntextbox\recurselevel}
-                 \advance\!!heightc by -\ht4
-                 \ifdim\ht0>\!!zeropoint
-                   \columnsettextbox\recurselevel=\box4
-                   \advance\!!heightc by \skip\footins
+               \ifdim\ht0>\zeropoint
+                 \columnsettextbox\recurselevel\vsplit0 to \!!heightc
+                 \setbox4\vbox{\unvcopy\columntextbox\recurselevel}
+                 \advance\!!heightc -\ht4
+                 \ifdim\ht0>\zeropoint
+                   \columnsettextbox\recurselevel\box4
+                   \advance\!!heightc \skip\footins
                  \fi
                \fi
                % split off footnotes
-               \ifdim\ht0>\!!zeropoint\relax \else 
-                 \ifdim\ht2>\!!zeropoint\relax
-                   \setbox4=\vsplit2 to \!!heightc
+               \ifdim\ht0>\zeropoint\relax \else 
+                 \ifdim\ht2>\zeropoint\relax
+                   \setbox4\vsplit2 to \!!heightc
                    \setbox\footins=\vbox{\unvbox4} % ugly and dirty trick
-                   \ifdim\ht\columntextbox\recurselevel=\!!zeropoint\relax
-                     \columnsettextbox\recurselevel=\hbox
-                       {\raise\dp\strutbox\hbox % ugly but needed
+                   \ifdim\ht\columntextbox\recurselevel=\zeropoint\relax
+                     \columnsettextbox\recurselevel\hbox
+                       {\raise\strutdp\hbox % ugly but needed
                           {\setfootnotebodyfont % both these moves
-                           \lower\dp\strutbox\hbox{\placebottomnotes}}}
+                           \lower\strutdp\hbox{\placebottomnotes}}}
                    \else
-                     \columnsetfootbox\recurselevel=\hbox{\placebottomnotes}
+                     \columnsetfootbox\recurselevel\hbox{\placebottomnotes}
                    \fi
                  \fi
                \fi}
diff --git a/tex/context/base/page-one.tex b/tex/context/base/page-one.tex
index 02a6e139f..e620d43bf 100644
--- a/tex/context/base/page-one.tex
+++ b/tex/context/base/page-one.tex
@@ -56,14 +56,14 @@
 %       \pushcolor
 %       \ifgridsnapping
 %         \vskip-\currentpagedepth
-%         \vskip\openstrutdepth % \dp\strutbox
-%         \prevdepth\openstrutdepth % \dp\strutbox
+%         \vskip\openstrutdepth     % \strutdp
+%         \prevdepth\openstrutdepth % \strutdp
 %         \dobotinsertions
 %         \vfil
 %       \else\ifr@ggedbottom
 %         \vskip-\currentpagedepth
-%         \vskip\openstrutdepth % \dp\strutbox
-%         \prevdepth\openstrutdepth % \dp\strutbox
+%         \vskip\openstrutdepth % \strutdp
+%         \prevdepth\openstrutdepth % \strutdp
 %         \dobotinsertions
 %         \vfil
 %       \else\ifb@selinebottom
@@ -458,7 +458,7 @@
   {\baselinecorrection
    \doplacefloatbox
    \doinsertfloatinfo
-   \doif\@@bkspringvolgendein\v!nee\noindentation} % new 
+   \dochecknextindentation\??bk} 
 
 \def\OTRONEsomefixdfloat % [#1]
   {\docheckiffloatfits
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 16ca38798..ab6e43545 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -298,8 +298,8 @@
            {\topskipcorrection
             \dorecurse\columnmaxcells
               {\setbox\scratchbox\hbox{\OTRSETgetgridcell\mofcolumns\recurselevel}%
-               \ht\scratchbox\ht\strutbox
-               \dp\scratchbox\dp\strutbox
+               \ht\scratchbox\strutht
+               \dp\scratchbox\strutdp
                \ifcase\columndirection
                  \box\scratchbox
                \else
@@ -328,8 +328,8 @@
        \setbox\scratchbox\hbox
          {\hbox to \zeropoint{\OTRSETgetgridcell\nofcolumns\lastcolumnlastcell}%
           \box\scratchbox}%
-       \ht\scratchbox\ht\strutbox
-       \dp\scratchbox\dp\strutbox
+       \ht\scratchbox\strutht
+       \dp\scratchbox\strutdp
        \OTRSETsetgridcell\nofcolumns\lastcolumnlastcell\box\scratchbox
      \fi
      \global\lastcolumnlastcell\zerocount
@@ -628,14 +628,14 @@
 %    \setbox0\vbox to \columnfreecells\lineheight
 %      {\vskip-\topskip
 %       \vskip\lineheight
-%       \prevdepth\dp\strutbox
+%       \prevdepth\strutdp
 %       \unvbox\normalpagebox
 %       \vfill}%
 %    \setbox2\hbox
 %      {\OTRSETplacebottomnotes}%
 %    \setbox\scratchbox\hbox
 %      {\wd0\zeropoint\box0\box2}%
-%    \dp\scratchbox\dp\strutbox
+%    \dp\scratchbox\strutdp
 %    \OTRSEThandleflushedtext1
 %    \egroup}
 
@@ -645,14 +645,14 @@
    \setbox0\vbox to \columnfreecells\lineheight
      {\vskip-\topskip
       \vskip\lineheight
-      \prevdepth\dp\strutbox
+      \prevdepth\strutdp
       \unvbox\normalpagebox
       \vfill}%
    \setbox2\hbox
      {\OTRSETplacebottomnotes}%
    \setbox\scratchbox\hbox
      {\wd0\zeropoint\box0\box2}%
-   \dp\scratchbox\dp\strutbox
+   \dp\scratchbox\strutdp
    \donetrue
    \ifbalancecolumns \ifcase\OTRSETfinish \or \or
      % we're in the second balance loop in this column set, 
@@ -1931,8 +1931,8 @@
         \wd\scratchbox\zeropoint
       \else
         \wd\scratchbox\hsize
-        \ht\scratchbox\ht\strutbox
-        \dp\scratchbox\dp\strutbox
+        \ht\scratchbox\strutht
+        \dp\scratchbox\strutdp
       \fi
       \box\scratchbox}}
 
@@ -1973,7 +1973,7 @@
 
 \def\OTRSETsomeslotfloat[#1]%
   {\setbox\floatbox\vbox{\flushfloatbox}%
-   \dp\floatbox\dp\strutbox
+   \dp\floatbox\strutdp
    \@EA\uppercasestring\floatmethod\to\floatmethod
    \OTRSETstoreincolumnslot\floatmethod\floatbox
    \doinsertfloatinfo}
@@ -2439,27 +2439,6 @@
 
 % \chardef\columnslotlocation2
 
-% \def\dostopcolumnsetspan#1%
-%   {\par
-%    \vbox{\strut}
-%    \kern-2\lineheight 
-%    \vbox{\strut}
-%    \doifsomething{\framedtextparameter{cs:#1}\c!na}
-%      {\framedtextparameter{cs:#1}\c!na
-%       \kern\zeropoint}% otherwise blanks disappear, better be a switch
-%    \dostopframedtext 
-%    \egroup
-%    \setbox\scratchbox\frozenhbox % keeps grid snapping okay 
-%      {\lower\strutdepth\box\scratchbox}%
-%    %todo: nboven/onder\chardef\columnslotlocation2
-%    %\OTRSETstoreincolumnslotSOMEWHERE\columnslotlocation\scratchbox
-%    \chardef\columnslotspacing\framedtextparameter{cs:#1}\c!nregels\relax
-%    \OTRSETstoreincolumnslotSOMEWHERE2\scratchbox
-%    \doif{\framedtextparameter{cs:#1}\c!springvolgendein}\v!nee
-%      \noindentation
-%    \egroup
-%    \endgraf}
-
 \def\dostopcolumnsetspan#1%
   {\par
    \vbox{\strut}
@@ -2488,8 +2467,8 @@
      \@EA\uppercasestring\floatmethod\to\floatmethod
      % todo : \v!hier -> here enzovoorts 
      \OTRSETstoreincolumnslot\floatmethod\scratchbox
-     \doif{\framedtextparameter{cs:#1}\c!springvolgendein}\v!nee
-       \noindentation
+     % watch out: no \dochecknextindentation{tag} 
+     \checknextindentation[\framedtextparameter{cs:#1}\springvolgendein]
    \fi
    \egroup
    \endgraf}
diff --git a/tex/context/base/page-sid.tex b/tex/context/base/page-sid.tex
index b0919842f..521b8b968 100644
--- a/tex/context/base/page-sid.tex
+++ b/tex/context/base/page-sid.tex
@@ -597,11 +597,32 @@
 \def\iffirstsidefloatparagraph
   {\ifnum\sidefloatparagraph=1 }
 
+% \def\setsidefloatparagraph
+%  {%\advance\sidefloatprogress \sidefloatbottomskip
+%   %\!!counta\sidefloatprogress
+%\scratchdimen\sidefloatprogress
+%\advance\scratchdimen \strutht
+%\!!counta\scratchdimen
+%   \divide\!!counta \baselineskip
+%   \ifnum\!!counta>0
+%     \hangindent \ifrightfloat-\fi\sidefloatwidth
+%     \hangafter-\!!counta
+%   \fi
+%   \global\advance\sidefloatparagraph \plusone
+%   \iftracesidefloats
+%     \hskip-\sidefloatwidth
+%     \color[darkgray]%
+%       {\vrule\!!height.5\s!pt\!!depth.5\s!pt\!!width\sidefloatwidth
+%       %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
+%        \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
+%   \fi}
+
 \def\setsidefloatparagraph
   {%\advance\sidefloatprogress \sidefloatbottomskip
    %\!!counta\sidefloatprogress
 \scratchdimen\sidefloatprogress
-\advance\scratchdimen \ht\strutbox
+\advance\scratchdimen \strutht
+\advance\scratchdimen -10sp % new, needed in prikkels, prevent rounding errors 
 \!!counta\scratchdimen
    \divide\!!counta \baselineskip
    \ifnum\!!counta>0
diff --git a/tex/context/base/plus-rul.tex b/tex/context/base/plus-rul.tex
new file mode 100644
index 000000000..8b5652485
--- /dev/null
+++ b/tex/context/base/plus-rul.tex
@@ -0,0 +1,183 @@
+%D \module
+%D   [       file=plus-rul,
+%D        version=2003.03.16, 
+%D          title=\CONTEXT\ Plus Macros,
+%D       subtitle=Ruled Stuff Handling,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+\writestatus{loading}{Context Plus Macros / Ruled Content Handling}
+
+\unprotect 
+
+%D \definesidebar[whow][rulecolor=green,distance=]
+%D 
+%D \starttext 
+%D 
+%D \input tufte \par
+%D \startsidebar 
+%D   \input tufte \par
+%D   \input tufte \par
+%D   \startsidebar[whow]
+%D     \input tufte \par
+%D     \input tufte \par
+%D     \input tufte \stopsidebar \par
+%D   \input tufte \par
+%D   \input tufte \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar 
+%D   \input tufte \par
+%D   \input tufte \par
+%D   \input tufte \par
+%D   \input tufte \par
+%D   \input tufte \stopsidebar \par
+%D \input tufte \par
+%D \input tufte \par
+%D \startsidebar 
+%D   \input tufte 
+%D   \input tufte 
+%D   \input tufte 
+%D   \input tufte 
+%D   \input tufte 
+%D \stopsidebar
+
+\newcounter\currentsidebar
+\newdimen  \sidebardistance
+
+\definesystemvariable{sr}
+
+\def\setupsidebars 
+  {\dodoubleargument\dosetupsidebars}
+
+\def\dosetupsidebars[#1][#2]%
+  {\ifsecondargument
+     \getparameters[\??sr#1][#2]%
+   \else
+     \getparameters[\??sr][#1]%
+   \fi}
+
+% \setupMPvariables
+%   [mpos:bar]
+%   [linecolor=red,
+%    linewidth=2pt,
+%    distance=5pt]
+
+\setupsidebars
+  [\c!lijndikte=2pt,
+   \c!lijnkleur=red,
+   \c!afstand=.5\bodyfontsize]
+
+\def\definesidebar
+  {\dodoubleempty\dodefinesidebar}
+
+\def\dodefinesidebar[#1][#2]%
+  {\copyparameters
+     [\??sr#1][\??sr]
+     [\c!lijndikte,\c!lijnkleur,\c!afstand]%
+   \getparameters
+     [\??sr#1][#2]}
+
+\def\startsidebar
+  {\dosingleempty\dostartsidebar}
+
+\def\dostartsidebar[#1]%
+  {\bgroup
+   \dontleavehmode
+   \checktextbackgrounds
+   \doglobal\increment\currentsidebar
+   \doifelsenothing{#1}
+     {\advance\sidebardistance\@@srafstand}
+     {\doifelsevaluenothing{\??sr#1\c!afstand}
+        {\advance\sidebardistance\@@srafstand}
+        {\sidebardistance\getvalue{\??sr#1\c!afstand}}}%
+   \startpositionoverlay{text-1}%
+     \expanded{\setMPpositiongraphicrange 
+       {b:side:\currentsidebar}%
+       {e:side:\currentsidebar}%
+       {mpos:bar}%
+       {self=side:\currentsidebar,
+        linewidth=\getvalue{\??sr#1\c!lijndikte},
+        linecolor=\getvalue{\??sr#1\c!lijnkleur},
+        distance=\the\sidebardistance}}%
+   \stoppositionoverlay
+   \edef\stopsidebar{\noexpand\dostopsidebar{\currentsidebar}}%
+   \bpos{side:\currentsidebar}\ignorespaces}
+
+\def\dostopsidebar#1%
+  {\removelastspace\tpos{side:#1}\carryoverpar\egroup}
+
+\startMPpositionmethod{mpos:bar}
+  \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}%
+    StartPage ;
+      path p ; p := 
+      if \MPp\MPbself=\MPp\MPeself : 
+        (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+        (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+      elseif RealPageNumber=\MPp\MPbself : 
+        (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
+        (llcorner Field[Text][Text]) ;
+      elseif RealPageNumber=\MPp\MPeself : 
+        (ulcorner Field[Text][Text]) --
+        (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
+      else : 
+        (ulcorner Field[Text][Text]) --
+        (llcorner Field[Text][Text]) ;
+      fi ; 
+      p := p shifted (-llcorner Field[Text][Text]-(\MPvar{distance},0)) ; 
+      interim linecap := butt ; 
+      draw p 
+        withpen pencircle scaled \MPvar{linewidth}  
+        withcolor \MPvar{linecolor} ; 
+    StopPage ;
+  \stopMPpositiongraphic
+  \MPpositiongraphic{mpos:bar}{}%
+\stopMPpositionmethod
+
+%D We now reimplement the margin rules handler defined in 
+%D \type {core-rul}:
+%D
+%D \setupmarginrules[level=5]
+%D
+%D \startmarginrule[1]
+%D First we set the level at~5. Next we typeset this first
+%D paragraph as a level~1 one. As expected no rule show up.
+%D \stopmarginrule
+%D
+%D \startmarginrule[5]
+%D The second paragraph is a level~5 one. As we can see here,
+%D the marginal rule gets a width according to its level.
+%D \stopmarginrule
+%D
+%D \startmarginrule[8]
+%D It will of course be no surprise that this third paragraph
+%D has a even thicker margin rule. This behavior can be
+%D overruled by specifying the width explictly.
+%D \stopmarginrule
+
+\definesidebar
+  [\v!marge]
+  [\c!lijnkleur=black,
+   \c!lijndikte=\@@kalijndikte,
+   \c!afstand=\dimexpr(\linkermargeafstand-\@@kalijndikte/2)]
+
+\def\complexstartmarginrule[#1]%
+  {\bgroup
+   \ifnum#1<\@@kaniveau\relax
+     \let\stopmarginrule\egroup
+   \else
+     \def\@@kadefaultwidth{#1}%
+     \let\stopmarginrule\dostopmarginrule 
+     \@EA\startsidebar\@EA[\@EA\v!marge\@EA]%
+   \fi}
+
+\def\dostopmarginrule
+  {\stopsidebar
+   \egroup}
+
+\protect \endinput 
diff --git a/tex/context/base/ppchtex.tex b/tex/context/base/ppchtex.tex
index 474c75c42..9ab0754f5 100644
--- a/tex/context/base/ppchtex.tex
+++ b/tex/context/base/ppchtex.tex
@@ -1158,7 +1158,7 @@
    \ifchemicalpicture
      \setchemicalpicture{#1}{#2}%
    \else
-     \doifelse{\@@chemicaloptie}{\v!test}
+     \doifelse\@@chemicaloptie\v!test
        {\def\@@chemicalframe{\chemicalframe}}
        {\def\@@chemicalframe{}}%
      \dosetsubscripts
@@ -1166,7 +1166,7 @@
      \setbox4=\hbox{$\@@dochemicalstyle{\@@localchemicalformat C_2^2}$}%
      \setbox6=\hbox{$\@@dochemicalstyle{\@@localchemicalformat O}$}% or C
      \doresetsubscripts
-     \doifnot{\@@chemicalplaats}{\v!intekst}
+     \doifnot\@@chemicalplaats\v!intekst
        {\ht2=\ht4
         \dp2=\dp4}%
      \setbox2=\hbox{\@@chemicalframe{\@@dochemicalcolor\box2}}%
@@ -3166,7 +3166,7 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
      {\dosetsubscripts%
       $\@@dochemicalstyle{\@@localchemicalformat\strut##1}$%
       \doresetsubscripts}%
-   \doifelse{\@@chemicalplaats}{\v!intekst}%
+   \doifelse\@@chemicalplaats\v!intekst
      {#1{\dochemicaltext\toptext}}%
      {\setbox\chemicalsymbols=\hbox
         {\box\chemicalsymbols
@@ -3175,56 +3175,56 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
            #2%
            \hbox to 3em{\hss\dochemicaltext{\bottext}\hss}\cr}}}}}
 
-\def\executechemicalGIVES%
+\def\executechemicalGIVES
   {\executechemicalarrow
      {\chemicalsinglepicturearrow}% nodig
      {\rightarrowfill\cr}}
 
-\def\executechemicalEQUILIBRIUM%
+\def\executechemicalEQUILIBRIUM
   {\executechemicalarrow
      {\chemicaldoublepicturearrow}%  nodig
      {\rightarrowfill\cr\leftarrowfill\cr}}
 
-\def\executechemicalMESOMERIC%
+\def\executechemicalMESOMERIC
   {\executechemicalarrow
      {\chemicalsinglepicturearrow}%  nodig
      {$\leftarrow\hskip-1em$\rightarrowfill\cr}}
 
 \def\executechemicalsign#1[#2]%
-  {\doifelse{\@@chemicalplaats}{\v!intekst}
+  {\doifelse\@@chemicalplaats\v!intekst
      {\dosetsubscripts
       $\@@dochemicalstyle{\@@localchemicalformat#1}$%
       \doresetsubscripts}
-     {\setbox\chemicalsymbols=\hbox
+     {\setbox\chemicalsymbols\hbox
         {\box\chemicalsymbols
          \dosetsubscripts
          $\@@dochemicalstyle{\@@localchemicalformat#1}$%
          \doresetsubscripts}}}
 
-\def\executechemicalPLUS%
+\def\executechemicalPLUS
   {\executechemicalsign{+}}
 
-\def\executechemicalMINUS%
+\def\executechemicalMINUS
   {\executechemicalsign{-}}
 
-\def\executechemicalEQUAL%
+\def\executechemicalEQUAL
   {\executechemicalsign{=}}
 
 \def\executechemicalSPACE[#1]%
-  {\doifnot{\@@chemicalplaats}{\v!intekst}%
-     {\setbox\chemicalsymbols=\hbox
+  {\doifnot\@@chemicalplaats\v!intekst
+     {\setbox\chemicalsymbols\hbox
         {\box\chemicalsymbols
          \quad}}}
 
 \def\executechemicalCHEM[#1]%
-  {\doifnot{\@@chemicalplaats}{\v!intekst}%
-     {\setbox\chemicalsymbols=\hbox
+  {\doifnot\@@chemicalplaats\v!intekst
+     {\setbox\chemicalsymbols\hbox
         {\box\chemicalsymbols
          $\@@dochemicalstyle{\@@localchemicalformat#1}$}}}
 
 \def\executechemicalTEXT[#1]%
-  {\doifnot{\@@chemicalplaats}{\v!intekst}%
-     {\setbox\chemicalsymbols=\hbox
+  {\doifnot\@@chemicalplaats\v!intekst
+     {\setbox\chemicalsymbols\hbox
         {\box\chemicalsymbols#1}}}
 
 %\def\executechemicalLOW[#1]%
@@ -3362,11 +3362,11 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
 \ifCONTEXT 
 
 \def\setchemicalattributes
-  {\scratchdimen=\@@chemicalchemicallijndikte 
+  {\scratchdimen\@@chemicalchemicallijndikte 
    \def\chemicalattributes
      {withpen pencircle scaled \the\scratchdimen\space
       withcolor }% 
-   \doifelsenothing{\@@chemicalchemicallijnkleur}
+   \doifelsenothing\@@chemicalchemicallijnkleur
      {\edef\chemicalattributes{\chemicalattributes black}}
      {\edef\chemicalattributes
         {\chemicalattributes \MPcolor{\@@chemicalchemicallijnkleur}}}%
@@ -3377,10 +3377,10 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
 \let\@@chemicalkleur\empty
 
 \def\@@dochemicalcolor 
-  {\doifsomething{\@@chemicalkleur}{\color[\@@chemicalkleur]}}     
+  {\doifsomething\@@chemicalkleur{\color[\@@chemicalkleur]}}     
 
 \def\@@dochemicalstyle 
-  {\doconvertfont{\@@chemicalletter}}
+  {\doconvertfont\@@chemicalletter}
 
 \setupchemical
   [\c!lijndikte=\linewidth,
@@ -3396,6 +3396,4 @@ RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
 
 \fi 
 
-\protect
-
-\endinput
+\protect \endinput
diff --git a/tex/context/base/regi-grk.tex b/tex/context/base/regi-grk.tex
new file mode 100644
index 000000000..72b732eb8
--- /dev/null
+++ b/tex/context/base/regi-grk.tex
@@ -0,0 +1,117 @@
+%D \module
+%D   [       file=regi-grk,
+%D        version=2003.03.01,
+%D          title=\CONTEXT\ Encoding Macros,
+%D       subtitle=Greek,
+%D         author=Apostolos Syropoulos,
+%D           date=\currentdate,
+%D      copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startregime[grk]
+
+%
+% Uppercase Greek letters
+%
+
+\defineactivetoken 193 {\GreekAlpha}
+\defineactivetoken 194 {\GreekBeta}
+\defineactivetoken 195 {\GreekGamma}
+\defineactivetoken 196 {\GreekDelta}
+\defineactivetoken 197 {\GreekEpsilon}
+\defineactivetoken 198 {\GreekZeta}
+\defineactivetoken 199 {\GreekEta}
+\defineactivetoken 200 {\GreekTheta}
+\defineactivetoken 201 {\GreekIota}
+\defineactivetoken 202 {\GreekKappa}
+\defineactivetoken 203 {\GreekLamda}
+\defineactivetoken 204 {\GreekMu}
+\defineactivetoken 205 {\GreekNu}
+\defineactivetoken 206 {\GreekXi}
+\defineactivetoken 207 {\GreekOmicron}
+\defineactivetoken 208 {\GreekPi}
+\defineactivetoken 209 {\GreekRho}
+\defineactivetoken 211 {\GreekSigma}
+\defineactivetoken 212 {\GreekTau}
+\defineactivetoken 213 {\GreekUpsilon}
+\defineactivetoken 214 {\GreekPhi}
+\defineactivetoken 215 {\GreekChi}
+\defineactivetoken 216 {\GreekPsi}
+\defineactivetoken 217 {\GreekOmega}
+
+%
+% Lowercase Greek letters
+%
+
+\defineactivetoken 225 {\Greekalpha}
+\defineactivetoken 226 {\Greekbeta}
+\defineactivetoken 227 {\Greekgamma}
+\defineactivetoken 228 {\Greekdelta}
+\defineactivetoken 229 {\Greekepsilon}
+\defineactivetoken 230 {\Greekzeta}
+\defineactivetoken 231 {\Greeketa}
+\defineactivetoken 232 {\Greektheta}
+\defineactivetoken 233 {\Greekiota}
+\defineactivetoken 234 {\Greekkappa}
+\defineactivetoken 235 {\Greeklamda}
+\defineactivetoken 236 {\Greekmu}
+\defineactivetoken 237 {\Greeknu}
+\defineactivetoken 238 {\Greekxi}
+\defineactivetoken 239 {\Greekomicron}
+\defineactivetoken 240 {\Greekpi}
+\defineactivetoken 241 {\Greekrho}
+\defineactivetoken 242 {\Greekfinalsigma}
+\defineactivetoken 243 {\Greeksigma}
+\defineactivetoken 244 {\Greektau}
+\defineactivetoken 245 {\Greekupsilon}
+\defineactivetoken 246 {\Greekphi}
+\defineactivetoken 247 {\Greekchi}
+\defineactivetoken 248 {\Greekpsi}
+\defineactivetoken 249 {\Greekomega}
+
+%
+% Accented Uppercase Greek letters
+%
+
+\defineactivetoken 182 {\GreekAlphatonos}
+\defineactivetoken 184 {\GreekEpsilontonos}
+\defineactivetoken 185 {\GreekEtatonos}
+\defineactivetoken 186 {\GreekIotatonos}
+\defineactivetoken 188 {\GreekOmicrontonos}
+\defineactivetoken 190 {\GreekUpsilontonos}
+\defineactivetoken 191 {\GreekOmegatonos}
+\defineactivetoken 218 {\GreekIotadialytika}
+\defineactivetoken 219 {\GreekUpsilondialytika}
+
+%
+% Accented Lowercase Greek letters
+%
+
+\defineactivetoken 220 {\Greekalphatonos}
+\defineactivetoken 221 {\Greekepsilontonos}
+\defineactivetoken 222 {\Greeketatonos}
+\defineactivetoken 223 {\Greekiotatonos}
+\defineactivetoken 252 {\Greekomicrontonos}
+\defineactivetoken 253 {\Greekupsilontonos}
+\defineactivetoken 254 {\Greekomegatonos}
+\defineactivetoken 250 {\Greekiotadialytika}
+\defineactivetoken 251 {\Greekupsilondialytika}
+\defineactivetoken 192 {\Greekiotadialytikatonos}
+\defineactivetoken 224 {\Greekupsilondialytikatonos}
+
+%
+% Miscellaneous Greek symbols
+%
+
+\defineactivetoken 171 {\Greekleftquot}
+\defineactivetoken 187 {\Greekrightquot}
+\defineactivetoken 180 {\Greektonos}
+\defineactivetoken 181 {\Greekdialytikatonos}
+\defineactivetoken 162 {\Greekapostrophos}
+
+\stopregime 
+
+\endinput 
diff --git a/tex/context/base/regi-ini.tex b/tex/context/base/regi-ini.tex
index 07e1f3fb9..0f663a423 100644
--- a/tex/context/base/regi-ini.tex
+++ b/tex/context/base/regi-ini.tex
@@ -1,5 +1,19 @@
-% For the moment regimes are implemented in the enco-ini.tex
-% module, but some day we will move the code here. 
+%D \module
+%D   [       file=regi-ini,
+%D        version=2000.12.27, % 1998.12.03,
+%D          title=\CONTEXT\ Regime Macros,
+%D       subtitle=Initialization,
+%D         author=Hans Hagen,
+%D           date=\currentdate,
+%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 
+%C details. 
+
+%D For the moment regimes are implemented in \type 
+%D {enco-ini.tex} module, but some day we will move the 
+%D code here. 
 
 % also needed: message
 
@@ -18,6 +32,8 @@
 \def\useregime[#1]%
   {\processcommalist[#1]\douseregime}
 
+\fetchruntimecommand \showregime {regi-run}
+
 \protect 
 
 \useregime[def,uni,ibm,win,il1,mac]
diff --git a/tex/context/base/regi-mac.tex b/tex/context/base/regi-mac.tex
index 62d79a059..b3c281ec0 100644
--- a/tex/context/base/regi-mac.tex
+++ b/tex/context/base/regi-mac.tex
@@ -3,7 +3,7 @@
 %D        version=2001.03.18,
 %D          title=\CONTEXT\ Encoding Macros,
 %D       subtitle=Mac Encoding, 
-%D         author={Michel Bovani \& Hans Hagen},
+%D         author={Michel Bovani \& Adam Lindsay \& Hans Hagen},
 %D           date=\currentdate,
 %D      copyright=PRAGMA-ADE]
 %C
@@ -13,104 +13,135 @@
 
 \startregime [mac]
 
-\defineactivetoken � {\Agrave} 
-\defineactivetoken � {\Aacute} 
-\defineactivetoken � {\Acircumflex}
-\defineactivetoken � {\Atilde} 
-\defineactivetoken � {\Adiaeresis} 
-\defineactivetoken � {\Aring} % ? 
-\defineactivetoken � {\AEligature} 
-
-\defineactivetoken � {\agrave} 
-\defineactivetoken � {\aacute}
-\defineactivetoken � {\acircumflex}
-\defineactivetoken � {\atilde} 
-\defineactivetoken � {\adiaeresis}  
-\defineactivetoken � {\aring} % ?
-\defineactivetoken � {\aeligature} 
-
-\defineactivetoken � {\Ccedilla} 
-\defineactivetoken � {\ccedilla}  
-
-\defineactivetoken � {\Egrave} 
-\defineactivetoken � {\Eacute}
-\defineactivetoken � {\Ecircumflex} 
-\defineactivetoken � {\Ediaeresis}  
-
-\defineactivetoken � {\egrave} 
-\defineactivetoken � {\eacute}
-\defineactivetoken � {\ecircumflex} 
-\defineactivetoken � {\ediaeresis}  
-
-\defineactivetoken � {\Igrave} 
-\defineactivetoken � {\Iacute}
-\defineactivetoken � {\Icircumflex} 
-\defineactivetoken � {\Idiaeresis}  
-
-\defineactivetoken � {\igrave} 
-\defineactivetoken � {\iacute}
-\defineactivetoken � {\icircumflex} 
-\defineactivetoken � {\idiaeresis}  
-
-\defineactivetoken � {\Ntilde} 
-\defineactivetoken � {\ntilde} 
-
-\defineactivetoken � {\Ograve} 
-\defineactivetoken � {\Oacute}
-\defineactivetoken � {\Ocircumflex}
-\defineactivetoken � {\Otilde}  
-\defineactivetoken � {\Odiaeresis}  
-\defineactivetoken � {\OEligature}
-\defineactivetoken � {\Oslash} % ? 
-
-\defineactivetoken � {\ograve} 
-\defineactivetoken � {\oacute}
-\defineactivetoken � {\ocircumflex}
-\defineactivetoken � {\otilde}  
-\defineactivetoken � {\odiaeresis} 
-\defineactivetoken � {\oeligature}
-\defineactivetoken � {\oslash} % ? 
-
-\defineactivetoken � {\Scaron} 
-\defineactivetoken � {\scaron} 
-\defineactivetoken � {\ssharp}  
-
-\defineactivetoken � {\Ugrave} 
-\defineactivetoken � {\Uacute}
-\defineactivetoken � {\Ucircumflex}
-\defineactivetoken � {\Udiaeresis}  
-
-\defineactivetoken � {\ugrave} 
-\defineactivetoken � {\uacute}
-\defineactivetoken � {\ucircumflex}
-\defineactivetoken � {\udiaeresis}  
-
-\defineactivetoken � {\Yacute}
-\defineactivetoken � {\yacute} 
-\defineactivetoken � {\ydiaeresis}  
-\defineactivetoken � {\Ydiaeresis}  
-
-\defineactivetoken � {?`} % ? 
-\defineactivetoken � {!`} % ? 
-\defineactivetoken � {\textdag} 
-\defineactivetoken � {\textddag} 
-\defineactivetoken � {\paragraphmark} 
-\defineactivetoken � {\sectionmark} 
-\defineactivetoken � {\endash} 
-\defineactivetoken � {\emdash} 
-\defineactivetoken � {\unknown} % ? 
-\defineactivetoken � {\copyright}
-\defineactivetoken � {\sterling} % ? 
-
-\defineactivetoken � {\quotedblleft } % {\char44\kern-.1em\char44 } % ? 
-\defineactivetoken � {\quotedblbase } % {\char96\kern-.1em\char96 } % ? 
-\defineactivetoken � {\quoteleft}               
-\defineactivetoken � {\char39 }       % ?           
-\defineactivetoken � {\leftguillemot}
-\defineactivetoken � {\rightguillemot}
+\defineactivetoken 128 {\Adiaeresis}
+\defineactivetoken 129 {\Aring}
+\defineactivetoken 130 {\Ccedilla}
+\defineactivetoken 131 {\Eacute}
+\defineactivetoken 132 {\Ntilde}
+\defineactivetoken 133 {\Odiaeresis}
+\defineactivetoken 134 {\Udiaeresis}
+\defineactivetoken 135 {\aacute}
+\defineactivetoken 136 {\agrave}
+\defineactivetoken 137 {\acircumflex}
+\defineactivetoken 138 {\adiaeresis}
+\defineactivetoken 139 {\atilde}
+\defineactivetoken 140 {\aring}
+\defineactivetoken 141 {\ccedilla}
+\defineactivetoken 142 {\eacute}
+\defineactivetoken 143 {\egrave}
+\defineactivetoken 144 {\ecircumflex}
+\defineactivetoken 145 {\ediaeresis}
+\defineactivetoken 146 {\iacute}
+\defineactivetoken 147 {\igrave}
+\defineactivetoken 148 {\icircumflex}
+\defineactivetoken 149 {\idiaeresis}
+\defineactivetoken 150 {\ntilde}
+\defineactivetoken 151 {\oacute}
+\defineactivetoken 152 {\ograve}
+\defineactivetoken 153 {\ocircumflex}
+\defineactivetoken 154 {\odiaeresis}
+\defineactivetoken 155 {\otilde}
+\defineactivetoken 156 {\uacute}
+\defineactivetoken 157 {\ugrave}
+\defineactivetoken 158 {\ucircumflex}
+\defineactivetoken 159 {\udiaeresis}
+\defineactivetoken 160 {\textdag}
+\defineactivetoken 161 {\textdegree}
+\defineactivetoken 162 {\textcent}
+\defineactivetoken 163 {\textsterling}
+\defineactivetoken 164 {\sectionmark}
+\defineactivetoken 165 {\textbullet}
+\defineactivetoken 166 {\paragraphmark}
+\defineactivetoken 167 {\ssharp}
+\defineactivetoken 168 {\registered}
+\defineactivetoken 169 {\copyright}
+\defineactivetoken 170 {\trademark}
+\defineactivetoken 171 {\textacute}
+\defineactivetoken 172 {\textdiaeresis}
+\defineactivetoken 173 {\mathematics\neq}
+\defineactivetoken 174 {\AEligature}
+\defineactivetoken 175 {\Ostroke}
+\defineactivetoken 176 {\mathematics\infty}
+\defineactivetoken 177 {\textpm}
+\defineactivetoken 178 {\mathematics\leq}
+\defineactivetoken 179 {\mathematics\geq}
+\defineactivetoken 180 {\textyen}
+\defineactivetoken 181 {\textmu}
+\defineactivetoken 182 {\mathematics\partial}
+\defineactivetoken 183 {\mathematics\Sigma}
+\defineactivetoken 184 {\mathematics\Pi}
+\defineactivetoken 185 {\mathematics\pi}
+\defineactivetoken 186 {\mathematics\smallint}
+\defineactivetoken 187 {\ordfeminine}
+\defineactivetoken 188 {\ordmasculine}
+\defineactivetoken 189 {\mathematics\Omega}
+\defineactivetoken 190 {\aeligature}
+\defineactivetoken 191 {\ostroke}
+\defineactivetoken 192 {\questiondown}
+\defineactivetoken 193 {\exclamdown}
+\defineactivetoken 194 {\textlognot}
+\defineactivetoken 195 {\mathematics{\sqrt{}}}
+\defineactivetoken 196 {\textflorin}
+\defineactivetoken 197 {\mathematics\approx}
+\defineactivetoken 198 {\mathematics\Delta}
+\defineactivetoken 199 {\leftguillemot}
+\defineactivetoken 200 {\rightguillemot}
+\defineactivetoken 201 {\dots}
+\defineactivetoken 202 {\nonbreakablespace}
+\defineactivetoken 203 {\Agrave}
+\defineactivetoken 204 {\Atilde}
+\defineactivetoken 205 {\Otilde}
+\defineactivetoken 206 {\OEligature}
+\defineactivetoken 207 {\oeligature}
+\defineactivetoken 208 {\endash}
+\defineactivetoken 209 {\emdash}
+\defineactivetoken 210 {\quotedblleft}
+\defineactivetoken 211 {\quotedblright}
+\defineactivetoken 212 {\quoteleft}
+\defineactivetoken 213 {\quoteright}
+\defineactivetoken 214 {\textdiv}
+\defineactivetoken 215 {\mathematics\diamond}
+\defineactivetoken 216 {\ydiaeresis}
+\defineactivetoken 217 {\Ydiaeresis}
+\defineactivetoken 218 {\textfraction}
+\defineactivetoken 219 {\texteuro}
+\defineactivetoken 220 {\guilsingleleft}
+\defineactivetoken 221 {\guilsingleright}
+\defineactivetoken 222 {fi}
+\defineactivetoken 223 {fl}
+\defineactivetoken 224 {\textddag}
+\defineactivetoken 225 {\periodcentered}
+\defineactivetoken 226 {\quotesinglebase}
+\defineactivetoken 227 {\quotedblbase }
+\defineactivetoken 228 {\perthousand}
+\defineactivetoken 229 {\Acircumflex}
+\defineactivetoken 230 {\Ecircumflex}
+\defineactivetoken 231 {\Aacute}
+\defineactivetoken 232 {\Ediaeresis}
+\defineactivetoken 233 {\Egrave}
+\defineactivetoken 234 {\Iacute}
+\defineactivetoken 235 {\Icircumflex}
+\defineactivetoken 236 {\Idiaeresis}
+\defineactivetoken 237 {\Igrave}
+\defineactivetoken 238 {\Oacute}
+\defineactivetoken 239 {\Ocircumflex}
+%defineactivetoken 240 % No definition for Apple logo glyph yet.
+\defineactivetoken 241 {\Ograve}
+\defineactivetoken 242 {\Uacute}
+\defineactivetoken 243 {\Ucircumflex}
+\defineactivetoken 244 {\Ugrave}
+\defineactivetoken 245 {\dotlessi}
+\defineactivetoken 246 {\textcircumflex}
+\defineactivetoken 247 {\texttilde}
+\defineactivetoken 248 {\textmacron}
+\defineactivetoken 249 {\textbreve}
+\defineactivetoken 250 {\textdotaccent}
+\defineactivetoken 251 {\textring}
+\defineactivetoken 252 {\textcedilla}
+\defineactivetoken 253 {\texthungarumlaut}
+\defineactivetoken 254 {\textogonek}
+\defineactivetoken 255 {\textcaron}
 
 \stopregime
 
-% \enableregime[mac]
-
 \endinput
diff --git a/tex/context/base/setupb.tex b/tex/context/base/setupb.tex
index f407f3c4f..d42d1e788 100644
--- a/tex/context/base/setupb.tex
+++ b/tex/context/base/setupb.tex
@@ -730,7 +730,7 @@
 
 \startsetup
   \command
-    [\e!start\v!typen]
+    [\e!start<<\y!typen>>]
   \type
     [\c!stp!]
 \stopsetup
@@ -1255,7 +1255,7 @@
     [\c!number!]
     [1]
   \variable
-    [\c!dikte]
+    [\c!lijndikte]
     [\c!dimension!]
     []
 \stopsetup
@@ -1286,7 +1286,7 @@
 %   \type
 %     [\c!var!]
 %   \variable
-%     [\c!dikte]
+%     [\c!lijndikte]
 %     [\v!klein,\v!middel,\v!groot,\c!dimension!]
 %     [\v!middel]
 %   \variable
@@ -5151,9 +5151,12 @@
 
 \startsetup
   \command
-    [\y!setupitemize]
+    [\y!setupitemgroup]
   \type
-    [\c!opt!\c!val!\c!opt!\c!vals!\c!opt!\c!vars!]
+    [\c!val!\c!opt!\c!val!\c!opt!\c!vals!\c!opt!\c!vars!]
+  \value
+    [\c!identifier!]
+    []
   \value
     [\c!number!,\v!elk]
     []
@@ -5260,9 +5263,12 @@
 
 \startsetup
   \command
-    [\y!startitemize]
+    [\e!start<<\y!itemgroup>>]
   \type
-    [\c!opt!\c!vals!\c!opt!\c!vars!\c!stp!]
+    [\c!val!\c!opt!\c!vals!\c!opt!\c!vars!\c!stp!]
+  \value
+    [\c!identifier!]
+    []
   \value
     [a,A,KA,n,N,m,r,R,KR,\c!number!,\v!verder,
      \v!standaard,\c!repeat!\v!ruim,\c!repeat!\v!aanelkaar,\v!opelkaar,
@@ -5270,7 +5276,7 @@
      \v!kolommen]
     [\v!standaard]
   \inheritvariables
-    [\y!setupitemize]
+    [\y!setupitemgroup]
     []
 \stopsetup
 
@@ -5897,7 +5903,7 @@
 
 \startsetup
   \command
-    [\e!start\e!uitstellen]
+    [\e!start\v!uitstellen]
   \type
     [\c!stp!]
 \stopsetup
@@ -5921,7 +5927,7 @@
 
 \startsetup
   \command
-    [\e!start\e!verbergen]
+    [\e!start\v!verbergen]
   \type
     [\c!stp!]
 \stopsetup
@@ -6080,7 +6086,7 @@
 
 \startsetup
    \command
-     [\e!start\e!buffer]
+     [\e!start<<\y!buffer>>]
    \type
      [\c!opt!\c!val!\c!stp!]
    \value
@@ -6262,7 +6268,7 @@
 
 \startsetup
   \command
-    [\e!start\e!formule]
+    [\e!start<<\y!formule>>]
   \type
     [\c!stp!]
   \value
@@ -6949,7 +6955,7 @@
 
 \startsetup
   \command
-    [\e!start\e!tabulate]
+    [\e!start<<\y!tabulate>>]
   \type
     [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
   \value
@@ -7353,7 +7359,7 @@
 
 \startsetup
   \command
-    [\e!start\e!legenda]
+    [\e!start\v!legenda]
   \type
     [\c!opt!\c!val!\c!tex!{leg}\c!nop!\c!sep!\c!nop!\c!sep!\c!nop!\c!sep!\c!tex!{leg}\c!stp!]
   \value
@@ -7372,7 +7378,7 @@
 
 \startsetup
   \command
-    [\e!start\e!gegeven]
+    [\e!start\v!gegeven]
   \type
 %    [\c!tex!{geg}\c!nop!\c!sep!\c!nop!\c!sep!\c!nop!\c!sep!\c!tex!{geg}\c!stp!]
     [\c!tex!{\y!geg}\c!nop!\c!sep!\c!nop!\c!sep!\c!nop!\c!sep!\c!tex!{\y!geg}\c!stp!]
@@ -7805,7 +7811,7 @@
 
 \startsetup
   \command
-    [\e!start\e!interactiemenu]
+    [\e!start\v!interactiemenu]
   \type
     [\c!alwint!\c!val!\c!stp!]
   \value
@@ -8396,7 +8402,7 @@
 
 \startsetup
   \command
-    [\e!start\e!commentaar]
+    [\e!start\v!commentaar]
   \type
     [\c!opt!\c!val!\c!opt!\c!vars!\c!stp!]
   \value
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index ce63603dd..b7ff66081 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -30,7 +30,7 @@
 %      \box\pdfdestbox
 %    \fi}
 % 
-% \def\PDFdestvoffset{2\lineheight} % {1.5\ht\strutbox}
+% \def\PDFdestvoffset{2\lineheight} % {1.5\strutht}
 
 %D \macros
 %D   {jobsuffix}
diff --git a/tex/context/base/supp-box.tex b/tex/context/base/supp-box.tex
index b32274f38..fd497fe5e 100644
--- a/tex/context/base/supp-box.tex
+++ b/tex/context/base/supp-box.tex
@@ -35,6 +35,19 @@
 \ifx\normalvcenter\undefined \let\normalvcenter\vcenter \fi 
 
 %D \macros
+%D   {strutdp,strutht,strutwd}
+%D
+%D The next shortcuts save memory and keying. The width is 
+%D normally zero points (if not, you're in trouble). These 
+%D shortcuts can be used like a dimension, opposite to the 
+%D core macros \type {\strutdepth} and alike, which are 
+%D values.
+
+\def\strutdp{\dp\strutbox}
+\def\strutht{\ht\strutbox}
+\def\strutwd{\wd\strutbox} 
+
+%D \macros
 %D   {resetbox, emptybox}
 %D
 %D Let's start with an easy one. The next macro hides the 
@@ -741,7 +754,7 @@
      \reshapingboxtrue
      \the\everyshapebox 
      \normalhbox to \shapesignal{\strut\hss}% plus \strut 
-     \prevdepth\dp\strutbox} % never \nointerlineskip
+     \prevdepth\strutdp} % never \nointerlineskip
 
 \def\endofshapebox%
   {\endgraf
@@ -775,7 +788,7 @@
        {\everypar\emptytoks\normalvbox{\strut}}\nobreak
        \kern-\lineheight % geen \vskip
        \kern-\parskip
-     % \vskip-\dp\strutbox
+     % \vskip-\strutdp
      \fi\fi\fi
      \scratchdimen\dp\newshapebox
      \unvbox\newshapebox
@@ -783,8 +796,8 @@
      \kern-\scratchdimen % ?? 
      % now \prevdepth=0pt
      \ifdone
-       \kern\dp\strutbox
-       \prevdepth\dp\strutbox
+       \kern\strutdp
+       \prevdepth\strutdp
      \fi
    \fi
    \egroup}
@@ -899,8 +912,8 @@
               \normalhbox{\unhbox2}}}%
         \ifdim\ht0>\zeropoint
       \repeat}%
-    \ht\scratchbox\ht\strutbox
-    \dp\scratchbox\dp\strutbox
+    \ht\scratchbox\strutht
+    \dp\scratchbox\strutdp
     \box\scratchbox
     \egroup}
 
@@ -1009,12 +1022,12 @@
 %D            \hfuzz\maxdimen
 %D            \veryraggedright
 %D            \strut\unhcopy\nextbox}%
-%D         \ifdim\nextboxht>\ht\strutbox \else
+%D         \ifdim\nextboxht>\strutht \else
 %D           \setbox\scratchbox\null % overfull and not split 
 %D         \fi
 %D         \setbox\nextbox=\normalvbox % if omitted: missing brace reported
 %D           {\splittopskip=\openstrutheight
-%D            \setbox\nextbox=\vsplit\nextbox to \ht\strutbox
+%D            \setbox\nextbox=\vsplit\nextbox to \strutht
 %D            \unvbox\nextbox
 %D            \setbox\nextbox=\lastbox
 %D            \global\setbox1=\normalhbox
@@ -1065,15 +1078,15 @@
              \hskip\zeropoint \!!plus 1\!!fill % \hsize 
            \fi 
            \unhcopy0}%
-        \ifdim\nextboxht>\ht\strutbox 
+        \ifdim\nextboxht>\strutht 
           \setbox\nextbox\normalvbox % if omitted: missing brace reported
             {\splittopskip\openstrutheight
              \ifdone
-               \setbox\nextbox\vsplit\nextbox to \ht\strutbox
+               \setbox\nextbox\vsplit\nextbox to \strutht
              \else
                \doloop
-                 {\setbox0\vsplit\nextbox to \ht\strutbox
-                  \ifdim\nextboxht>\ht\strutbox \else \exitloop \fi}%
+                 {\setbox0\vsplit\nextbox to \strutht
+                  \ifdim\nextboxht>\strutht \else \exitloop \fi}%
              \fi
              \unvbox\nextbox
              \setbox\nextbox\lastbox
@@ -1651,8 +1664,8 @@
       \ifvoid\unhhedbox
         \setbox\hhbox\normalhbox{\strut\normalhboxofvbox\hhbox}%
       \fi
-      \ht\hhbox\ht\strutbox
-      \dp\hhbox\dp\strutbox
+      \ht\hhbox\strutht
+      \dp\hhbox\strutdp
       \ifdim\hhboxindent=\zeropoint\else
         \setbox\hhbox\normalhbox{\hskip-\hhboxindent\box\hhbox}%
         \hhboxindent\zeropoint
@@ -2045,10 +2058,10 @@
      {\bgroup
       \par
       \dimen0\nextboxht
-      \nextboxht\ht\strutbox
-      \nextboxdp\dp\strutbox
+      \nextboxht\strutht
+      \nextboxdp\strutdp
       \normalhbox{\flushnextbox}
-      \prevdepth\dp\strutbox
+      \prevdepth\strutdp
       \doloop
         {\advance\dimen0 -\lineheight
          \ifdim\dimen0<\zeropoint
@@ -2389,7 +2402,7 @@
   {\ifvmode \ifdim\prevdepth>\zeropoint \kern-\prevdepth \fi \fi}
 
 \def\obeydepth
-  {\par \removedepth \ifvmode \kern\dp\strutbox \fi}
+  {\par \removedepth \ifvmode \kern\strutdp \fi}
 
 %D \macros
 %D   {removebottomthings, removelastskip}
@@ -2409,8 +2422,8 @@
 %D strut. 
 
 \def\domakestrutofbox
-  {\ht\registercount\ht\strutbox
-   \dp\registercount\dp\strutbox
+  {\ht\registercount\strutht
+   \dp\registercount\strutdp
    \wd\registercount\zeropoint}
 
 \def\makestrutofbox
@@ -2433,8 +2446,8 @@
   {\def\next            % both direct and {} dimensions 
      {\dowithnextbox
         {\setbox\nextbox\normalhbox{#1\scratchdimen\flushnextbox}%
-         \nextboxht\ht\strutbox
-         \nextboxdp\dp\strutbox
+         \nextboxht\strutht
+         \nextboxdp\strutdp
          \flushnextbox}}%
    \afterassignment\next\scratchdimen=#2}
 
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 352cb7e98..6f324be6b 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -133,14 +133,14 @@
 %       \fi
 %       \setbox0=\hbox
 %         {\definedfont[#2 at #3]#1{#7}\hskip#4}%
-%          \ifdim\dp0>\dp\strutbox % one of those Q's , will be option
-%            \setbox2=\hbox{\raise\dp0\hbox{\lower\dp\strutbox\copy0}}%
-%            \ht2=\ht0 \dp0=\dp\strutbox \setbox0=\box2
+%          \ifdim\dp0>\strutdp % one of those Q's , will be option
+%            \setbox2=\hbox{\raise\dp0\hbox{\lower\strutdp\copy0}}%
+%            \ht2=\ht0 \dp0=\strutdp \setbox0=\box2
 %          \fi
-%       \setbox0=\hbox
+%       \setbox0\hbox
 %         {\lower#5\box0}%
-%       \ht0=\ht\strutbox
-%       \dp0=\dp\strutbox
+%       \ht0\strutht
+%       \dp0\strutdp
 %       \edef\DroppedIndent{\the\wd0}%
 %       \edef\DroppedLines {\number#6}%
 %       \hangindent\DroppedIndent
@@ -174,14 +174,14 @@
 %       \fi
 %       \setbox0\hbox
 %         {\definedfont[#2 at #3]#1{#7}\hskip#4}%
-%          \ifdim\dp0>\dp\strutbox % one of those Q's , will be option
-%            \setbox2\hbox{\raise\dp0\hbox{\lower\dp\strutbox\copy0}}%
-%            \ht2\ht0 \dp0\dp\strutbox \setbox0\box2
+%          \ifdim\dp0>\strutdp % one of those Q's , will be option
+%            \setbox2\hbox{\raise\dp0\hbox{\lower\strutdp\copy0}}%
+%            \ht2\ht0 \dp0\strutdp \setbox0\box2
 %          \fi
 %       \setbox0\hbox
 %         {\lower#5\box0}%
-%       \ht0\ht\strutbox
-%       \dp0\dp\strutbox
+%       \ht0\strutht
+%       \dp0\strutdp
 %       \globaldropcaps\edef\DroppedIndent{\the\wd0}%
 %       \globaldropcaps\edef\DroppedLines {\number#6}%
 %       \globaldropcaps\chardef\DroppedStatus2
@@ -215,10 +215,10 @@
       \fi
       \setbox0\hbox
         {\definedfont[#2 at #3]#1{#7}\hskip#4}%
-         \ifdim\dp0>\dp\strutbox % one of those Q's , will be option
-           \setbox2\hbox{\raise\dp0\hbox{\lower\dp\strutbox\copy0}}%
+         \ifdim\dp0>\strutdp % one of those Q's , will be option
+           \setbox2\hbox{\raise\dp0\hbox{\lower\strutdp\copy0}}%
            \ht2\ht0
-           \dp0\dp\strutbox
+           \dp0\strutdp
            \setbox0\box2
          \fi
       \setbox0\hbox
@@ -226,8 +226,8 @@
            \hskip-\wd0\wd0\zeropoint
          \fi
          \lower#5\box0}%
-      \ht0\ht\strutbox
-      \dp0\dp\strutbox
+      \ht0\strutht
+      \dp0\strutdp
       \ifnum\DropMode=\plusone
         \globaldropcaps\let\DroppedIndent\!!zeropoint
         \globaldropcaps\edef\DroppedLines{\number\maxdimen}%
@@ -368,7 +368,7 @@
      {\scratchcounter\baselineskip}{#5}}
 
 \def\LineDroppedCaps% command font offset lines
-  {\DoLineDroppedCaps{\ht\strutbox}}
+  {\DoLineDroppedCaps{\strutht}}
 
 \def\NiceDroppedCaps% command font offset lines
   {\DoLineDroppedCaps{.5\baselineskip}}
diff --git a/tex/context/base/symb-mvs.tex b/tex/context/base/symb-mvs.tex
index f25eeadaf..eb1c4c842 100644
--- a/tex/context/base/symb-mvs.tex
+++ b/tex/context/base/symb-mvs.tex
@@ -3,7 +3,7 @@
 % tobias: what is the original and what the berry name? 
 
 %D \module
-%D   [       file=symb-nav,
+%D   [       file=symb-mvs,
 %D        version=2000.03.30,
 %D          title=\CONTEXT\ Symbol Libraries,
 %D       subtitle=Martin Vogels Symbole,
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index 1d2b911b5..f55fb34c3 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -552,7 +552,6 @@
     \long\xdef\@@expanded{\noexpand#1}%
     \let\notexpanded\empty
     \@@expanded}
-
 
 % \def\doifdimensionelse#1%
 %   {\afterassignment\dodoifdimensionelse\scratchdimen=#1pt\relax\empty\empty\empty\empty}
@@ -596,5 +595,9 @@
 % \edef\xxxx{\doifnum{2}{2}{yes}} \show \xxxx
 % \scratchcounter0 \edef\xxxx{\doifnum{1}{\scratchcounter}{no}} \show \xxxx
 % \scratchcounter1 \edef\xxxx{\doifnum{1}{\scratchcounter}{yes}} \show \xxxx
-
+
+\def\appended#1#2#3{\@EA#1\@EA#2\@EA{#2#3}}
+\def\appendvalue #1{\@EA\appended\@EA \def\csname#1\endcsname}
+\def\appendgvalue#1{\@EA\appended\@EA\gdef\csname#1\endcsname}
+
 \protect \endinput
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 10441a464..e2d0d4a14 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -20,6 +20,67 @@
 
 % Computer Modern Roman (AMS)
 
+\starttypescript [all] [computer-modern] [lm] 
+
+  % the encoding vector is not yet okay ! 
+
+  \definefontsynonym [cmb10]    [lmb10]    [encoding=texnansi]
+  \definefontsynonym [cmbx10]   [lmbx10]   [encoding=texnansi]
+  \definefontsynonym [cmbx12]   [lmbx12]   [encoding=texnansi]
+  \definefontsynonym [cmbx5]    [lmbx5]    [encoding=texnansi]
+  \definefontsynonym [cmbx6]    [lmbx6]    [encoding=texnansi]
+  \definefontsynonym [cmbx7]    [lmbx7]    [encoding=texnansi]
+  \definefontsynonym [cmbx8]    [lmbx8]    [encoding=texnansi]
+  \definefontsynonym [cmbx9]    [lmbx9]    [encoding=texnansi]
+  \definefontsynonym [cmbxsl10] [lmbxsl10] [encoding=texnansi]
+  \definefontsynonym [cmbxti10] [lmbxti10] [encoding=texnansi]
+  \definefontsynonym [cmcsc10]  [lmcsc10]  [encoding=texnansi]
+  \definefontsynonym [cmitt10]  [lmitt10]  [encoding=texnansi]
+  \definefontsynonym [cmr10]    [lmr10]    [encoding=texnansi]
+  \definefontsynonym [cmr12]    [lmr12]    [encoding=texnansi]
+  \definefontsynonym [cmr17]    [lmr17]    [encoding=texnansi]
+  \definefontsynonym [cmr5]     [lmr5]     [encoding=texnansi]
+  \definefontsynonym [cmr6]     [lmr6]     [encoding=texnansi]
+  \definefontsynonym [cmr7]     [lmr7]     [encoding=texnansi]
+  \definefontsynonym [cmr8]     [lmr8]     [encoding=texnansi]
+  \definefontsynonym [cmr9]     [lmr9]     [encoding=texnansi]
+  \definefontsynonym [cmsl10]   [lmsl10]   [encoding=texnansi]
+  \definefontsynonym [cmsl12]   [lmsl12]   [encoding=texnansi]
+  \definefontsynonym [cmsl8]    [lmsl8]    [encoding=texnansi]
+  \definefontsynonym [cmsl9]    [lmsl9]    [encoding=texnansi]
+  \definefontsynonym [cmsltt10] [lmsltt10] [encoding=texnansi]
+  \definefontsynonym [cmss10]   [lmss10]   [encoding=texnansi]
+  \definefontsynonym [cmss12]   [lmss12]   [encoding=texnansi]
+  \definefontsynonym [cmss17]   [lmss17]   [encoding=texnansi]
+  \definefontsynonym [cmss8]    [lmss8]    [encoding=texnansi]
+  \definefontsynonym [cmss9]    [lmss9]    [encoding=texnansi]
+  \definefontsynonym [cmssbx10] [lmssbx10] [encoding=texnansi]
+  \definefontsynonym [cmssdc10] [lmssdc10] [encoding=texnansi]
+  \definefontsynonym [cmssi10]  [lmssi10]  [encoding=texnansi]
+  \definefontsynonym [cmssi12]  [lmssi12]  [encoding=texnansi]
+  \definefontsynonym [cmssi17]  [lmssi17]  [encoding=texnansi]
+  \definefontsynonym [cmssi8]   [lmssi8]   [encoding=texnansi]
+  \definefontsynonym [cmssi9]   [lmssi9]   [encoding=texnansi]
+  \definefontsynonym [cmtcsc10] [lmtcsc10] [encoding=texnansi]
+  \definefontsynonym [cmti10]   [lmti10]   [encoding=texnansi]
+  \definefontsynonym [cmti12]   [lmti12]   [encoding=texnansi]
+  \definefontsynonym [cmti7]    [lmti7]    [encoding=texnansi]
+  \definefontsynonym [cmti8]    [lmti8]    [encoding=texnansi]
+  \definefontsynonym [cmti9]    [lmti9]    [encoding=texnansi]
+  \definefontsynonym [cmtt10]   [lmtt10]   [encoding=texnansi]
+  \definefontsynonym [cmtt12]   [lmtt12]   [encoding=texnansi]
+  \definefontsynonym [cmtt8]    [lmtt8]    [encoding=texnansi]
+  \definefontsynonym [cmtt9]    [lmtt9]    [encoding=texnansi]
+
+  \definefontsynonym [cmbsl10]  [lmbsl10]  [encoding=texnansi]
+  \definefontsynonym [cmssbi10] [lmssbi10] [encoding=texnansi]
+  \definefontsynonym [cmssdi10] [lmssdi10] [encoding=texnansi]
+  \definefontsynonym [cmssq8]   [lmssq8]   [encoding=texnansi]
+  \definefontsynonym [cmssqb8]  [lmssqb8]  [encoding=texnansi]
+  \definefontsynonym [cmssqbi8] [lmssqbi8] [encoding=texnansi]
+  \definefontsynonym [cmssqi8]  [lmssqi8]  [encoding=texnansi]
+\stoptypescript
+
 \starttypescript [all] [computer-modern] [ec]
   \definefontsynonym [cmb10]    [aeb10]    [encoding=ec,handling=glm]
   \definefontsynonym [cmbx10]   [aebx10]   [encoding=ec,handling=glm]
diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex
index f1c19dbda..55097b8e7 100644
--- a/tex/context/base/type-map.tex
+++ b/tex/context/base/type-map.tex
@@ -20,6 +20,10 @@
   \loadmapfile[original-ams-euler.map]
 \stoptypescript 
 
+\starttypescript [map] [lm]
+  \loadmapfile[original-ams-lmr.map]
+\stoptypescript 
+
 \starttypescript [map] [il2]
   \loadmapfile[il2-ams-cmr.map]
 \stoptypescript 
diff --git a/tex/context/base/x-contml.tex b/tex/context/base/x-contml.tex
index cbe356041..a9adae2bd 100644
--- a/tex/context/base/x-contml.tex
+++ b/tex/context/base/x-contml.tex
@@ -168,9 +168,9 @@
 %D \showelements [context] [verbatim]
 
 \defineXMLenvironment [context:verbatim]
-  {\startopelkaar
+  {\startpacked
    \defineXMLargument[context:line]{\endgraf\type}}
-  {\stopopelkaar}
+  {\stoppacked}
 
 \defineXMLenvironment [context:typing]
   {\startpacked\defineXMLargument[context:line]{\endgraf\type}}
diff --git a/tex/context/base/x-res-08.tex b/tex/context/base/x-res-08.tex
index 0eb315a7b..c7452d1ee 100644
--- a/tex/context/base/x-res-08.tex
+++ b/tex/context/base/x-res-08.tex
@@ -16,14 +16,15 @@
 %D \starttyping 
 %D <rl:library>
 %D   <rl:usage>
-%D     <rl:type>figure<rr:type>
-%D     <rl:state>found|missing<rr:state>
-%D     <rl:name>filename<rr:name>
-%D     <rl:suffix>filesuffix<rr:suffix>
-%D     <rl:width>width in pt<rr:width>
-%D     <rl:height>height in pt<rr:height>
+%D     <rl:type>figure</rl:type>
+%D     <rl:state>found|missing</rl:state>
+%D     <rl:name>filename</rl:name>
+%D     <rl:suffix>filesuffix</rl:suffix>
+%D     <rl:width>width in pt</rl:width>
+%D     <rl:height>height in pt</rl:height>
+%D     <rl:comment>text</rl:comment>
 %D   </rl:usage>
-%D <rl:library>
+%D </rl:library>
 %D \stoptyping 
 
 \unprotect 
@@ -47,7 +48,8 @@
 \let\figurefilefile    \empty
 
 \def\XMLfeedbackresource#1#2%
-  {\immediate\write\XMLrllog
+  {\convertcommand\currentresourcecomment\to\currentresourcecomment
+   \immediate\write\XMLrllog
      {\writtenXMLelement{\XMLrlprefix usage}%
         {\writtenXMLelement{\XMLrlprefix type}{#2}%
          \writtenXMLelement{\XMLrlprefix state}{#1}%
@@ -78,6 +80,9 @@
          \ifnum\figurefilepage>\zerocount
            \writtenXMLelement{\XMLrlprefix page}{\figurefilepage}%
          \fi
+\ifx\currentresourcecomment\empty\else
+  \writtenXMLelement{\XMLrlprefix comment}{\currentresourcecomment}%
+\fi 
          \writtenXMLelement{\XMLrlprefix width}{\figurewidth}%
          \writtenXMLelement{\XMLrlprefix height}{\figureheight}}}}
 
diff --git a/tex/context/base/x-res-09.tex b/tex/context/base/x-res-09.tex
index 8b6421b47..cfe56a5c8 100644
--- a/tex/context/base/x-res-09.tex
+++ b/tex/context/base/x-res-09.tex
@@ -19,35 +19,42 @@
 
 \defineXMLenvironment [rl:usage] 
   {\bgroup} 
-  {\setups[rl usage]\egroup}
-
-\defineXMLsave [rl:type]   % figure
-\defineXMLsave [rl:state]  % found|missing
-\defineXMLsave [rl:file]   % filename
-\defineXMLsave [rl:suffix] % filesuffix
-\defineXMLsave [rl:width]  % width in pt
-\defineXMLsave [rl:height] % height in pt
-\defineXMLsave [rl:page]   % page from file 
+  {\setups[rl:usage]%
+   \egroup}
+
+\defineXMLsave [rl:type]    % figure
+\defineXMLsave [rl:state]   % found|missing
+\defineXMLsave [rl:file]    % filename
+\defineXMLsave [rl:suffix]  % filesuffix
+\defineXMLsave [rl:comment] % text 
+\defineXMLsave [rl:width]   % width in pt
+\defineXMLsave [rl:height]  % height in pt
+\defineXMLsave [rl:page]    % page from file 
 
 \def\XMLbpentry#1%
   {\PointsToWholeBigPoints{\XMLflush{#1}}\temp\temp bp}
 
+% \def\XMLrlentry#1#2#3%
+%   {\doiftextelse{\XMLflush{#2}}
+%      {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}
+%      {}}
+
 \def\XMLrlentry#1#2#3%
-  {\doiftext{\XMLflush{#2}}
-     {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}%
-   \ignorespaces} 
-
-\startsetups[rl usage]
-
-\starttabulate
-\XMLrlentry {type}   {rl:type}   {0}
-\XMLrlentry {state}  {rl:state}  {0}
-\XMLrlentry {file}   {rl:file}   {0}
-\XMLrlentry {name}   {rl:name}   {0}
-\XMLrlentry {suffix} {rl:suffix} {0}
-\XMLrlentry {page}   {rl:page}   {0}
-\XMLrlentry {width}  {rl:width}  {1}
-\XMLrlentry {height} {rl:height} {1}
+  {\tableiftextelse{\XMLflush{#2}}
+     {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}{}}
+
+\startsetups[rl:usage]
+
+\starttabulate[|lw(4.5em)|p|]
+  \XMLrlentry {type}   {rl:type}   {0}
+  \XMLrlentry {state}  {rl:state}  {0}
+  \XMLrlentry {file}   {rl:file}   {0}
+  \XMLrlentry {name}   {rl:name}   {0}
+  \XMLrlentry {suffix} {rl:suffix} {0}
+  \XMLrlentry {page}   {rl:page}   {0}
+  \XMLrlentry {width}  {rl:width}  {1}
+  \XMLrlentry {height} {rl:height} {1}
+  \XMLrlentry {comment}{rl:comment}{0}
 \stoptabulate 
 
 \stopsetups 
diff --git a/tex/context/user/cont-sys.rme b/tex/context/user/cont-sys.rme
index 755101e4e..55d304913 100644
--- a/tex/context/user/cont-sys.rme
+++ b/tex/context/user/cont-sys.rme
@@ -13,6 +13,11 @@
 
 \unprotect
 
+% If you want some extras, just uncomment the following 
+% line:
+%
+% \usemodule[plus]
+%
 % Here you can take care of overloading some (style) 
 % defaults. What goes here, depends on your local system. 
 %
-- 
cgit v1.2.3