+%% \ltj@afterbox <token><box>
+%% -> \setbox\ltj@afbox<box><token>
+%% from Sonja Maus, ``Looking Ahead for a <box>'',
+%% TUGBoat, 11, No. 4, 1990.
+\newbox\ltj@afbox
+\protected\def\ltj@afterbox#1{%
+ \def\ltj@afb@xarg{#1}%
+ \afterassignment\ltj@afb@x
+ \chardef\ltj@@next`.}
+\def\ltj@afb@x{\futurelet\ltj@@next\ltj@afb@xtest}
+\def\ltj@afb@xtest{%
+ \ifcase\ifx\ltj@@next\hbox\tw@\fi
+ \ifx\ltj@@next\vbox\tw@\fi
+ \ifx\ltj@@next\vtop\tw@\fi
+ \ifx\ltj@@next\box\@ne\fi
+ \ifx\ltj@@next\copy\@ne\fi
+ \ifx\ltj@@next\vsplit\@ne\fi
+ \ifx\ltj@@next\lastbox\@ne\fi
+ 0% ``A <box> was ...'' error will be causes by \setbox later anyway.
+ \or\afterassignment\ltj@afb@xarg
+ \or\afterassignment\ltj@afb@xagarg
+ \fi
+ \setbox\ltj@afbox
+}
+\def\ltj@afb@xagarg{\aftergroup\ltj@afb@xarg}
+
+