\wordright is ok until the numbers don't exceed the text width. It manages these two cases right: Index term, and some text 21, 34, 45, 72 Index term, and some text 21, 34, 45, 72, 89 When the numbers exceed the text width, it fails: Index term, and some text 21, 34, 45, 72, 89, 101, 103, 109 It fails because it uses a hbox, that can't do nothing but running beyond the right margin. This would be a solution: Index term, and some text 21, 34, 45, 72, 89, 101, 103, 109 where the rule is: when the numbers exceed the text width, close the paragraph, then start a new, right aligned one. So i wrote this: --------------------------------------------------- \def\wordorparagraphright#1{\let\scratchWidth\relax \setbox\scratchbox=\hbox{#1}\newdimen\scratchWidth \scratchWidth=\wd\scratchbox \ifdim\scratchWidth < 0.9\textwidth \wordright{#1}% \else \par \startalignment[flushright]#1\stopalignment \fi} \starttext \input sapolsky \wordorparagraphright{\it other text} \par \blank \input sapolsky \wordorparagraphright{\it other text, this time longer} \par \blank \input sapolsky \wordorparagraphright{\it other text, this time much much much much much much much much much much much much much much much much much much much much much much longer} \par \stoptext --------------------------------------------------- But it doesn't work with --------------------------------------------------- \unprotect \unexpanded\def\startregisterpages {\begingroup \dostarttagged\t!registerpages\empty \useregisterstyleandcolor\c!pagestyle\c!pagecolor \registerparameter\c!pageleft} \unexpanded\def\stopregisterpages {\registerparameter\c!pageright \dostoptagged \endgroup} \protect \def\wordorparagraphright#1{\let\scratchWidth\relax \setbox\scratchbox=\hbox{#1}\newdimen\scratchWidth \scratchWidth=\wd\scratchbox \ifdim\scratchWidth < 0.9\textwidth \w ordright{#1}% \else \par \startalignment[flushright]#1\stopalign ment \fi} \setupregister [index] [n=1, alternative=A, distance=0pt, pageleft=\wordorparagraphright\bgroup, pageright=\egroup] \starttext \CONTEXT\index{\ConTeXt} \page \LATEX\index{\LaTeX} \page \CONTEXT\index{\ConTeXt} \page \placeindex \stoptext --------------------------------------------------- I suppose it's related to the problem that \groupedcommand solves. Is there a solution? An even better solution would be: Index term, and some text 21, 34, 45, 72, 89, 101, 103, 109 where the rule is: put the text until it fills the current line, than proceed flushing the remainder of the paragraph lines to the right. Here i tried changing \leftskip in the middle of a paragraph, but it works globally. I think this is even harder to implement, at least in the middle of the register macros.