% are described below (if you're not interested in this sort of thing, skip
% to the next section).
%
-% \begin{description} \def\makelabel#1{\hskip\labelsep\cmd{#1}\hfil}
+% \begin{description} \setdescriptionlabel{\cmd{#1}}
% \item [stanza] is a \LaTeX\ counter which contains the current stanza
% number.
% \item [\thestanza] typesets the value of the |stanza| counter in normal
% are given.
% \item [\stanzaspace] is called with no arguments. It should somehow
% separate the previous stanza (if any) from the new one. Look at the
-% counter value to find out whether this is the first stanza, if it
-% matters (e.g., you're drawing little rows of stars or something).
+% counter value to find out whether this is the first stanza, if it
+% matters (e.g., you're drawing little rows of stars or something).
% \item [\stanzatitle] is given one argument: a `combined' title. It should
% typeset the title as a line in LR mode. Again, it's too late to
% play with fonts now.
\newif\ifpoem@long
% \end{macrocode}
%
-% Lastly, a skip register. This is the glue on the left hand side of a
+% Lastly, a skip register. This is the glue on the left hand side of a
% poem. It should be |\@centering| to center the poem horizontally, or
% something rigid and nonzero to left-align.
%
% a \<skip> by a \<number> kills off the stretch.
%
% \begin{macrocode}
-\def\@maybe@unskip{\hskip-\@ne\lastskip\relax}
+\def\@maybe@unskip{\ifhmode\hskip\m@ne\lastskip\relax\fi}
% \end{macrocode}
%
% \end{macro}
%
% \begin{environment}{xpoem}
%
-% The \env{xpoem} environment is where the nastiness really starts.
+% The \env{xpoem} environment is where the nastiness really starts.
% Actually, the early bit is simple enough.
%
% This environment has a funny name, so that users and style designers can