When I generate my index with XeLaTeX using xindy as described here: How to use xindy with XeTeX/LuaTeX? I struggle with proper ranges being displayed. Essentially, the dashes are missing and the page numbers stick to each other.
Example:
\documentclass{article}
\usepackage{xltxtra}
\usepackage{makeidx}
\makeindex
\begin{document}
index a
\index{a}
\clearpage
index a b
\index{a}\index{b}
\clearpage
index a b ä
\index{a}\index{b}\index{ä}
\clearpage
index a b ä ü
\index{a}\index{b}\index{ä}\index{ü}
\printindex
\end{document}
This results in the following output:

As you can see, the a is shown with 14 instead of 1-4. My call to xindy was the following:
xindy -M texindy -C utf8 -L german-duden xindy.idx
The xindy.idx file looks good to me:
\indexentry{a}{1}
\indexentry{a}{2}
\indexentry{b}{2}
\indexentry{a}{3}
\indexentry{b}{3}
\indexentry{ä}{3}
\indexentry{a}{4}
\indexentry{b}{4}
\indexentry{ä}{4}
\indexentry{ü}{4}
But the resulting xindy.ind file already shows the problem:
\begin{theindex}
\providecommand*\lettergroupDefault[1]{}
\providecommand*\lettergroup[1]{%
\par\textbf{#1}\par
\nopagebreak
}
\lettergroup{A}
\item a, 14
\item ä, 3, 4
\indexspace
\lettergroup{B}
\item b, 24
\indexspace
\lettergroup{U}
\item ü, 4
\end{theindex}
What am I missing here?

page-rangesis not loaded automatically (for whatever reason) and when I include it explicitely, it works as expected. – kongo09 Sep 21 '11 at 19:17