diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.5.0.orig/user-commands/texindy.1 xindy-2.5.0/user-commands/texindy.1
--- xindy-2.5.0.orig/user-commands/texindy.1	2014-04-19 21:41:54.000000000 +0200
+++ xindy-2.5.0/user-commands/texindy.1	2014-05-11 15:45:44.000000000 +0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "texindy 1"
-.TH texindy 1 "2014-04-19" "Release 2.5" "texindy"
+.TH texindy 1 "2014-05-11" "Release 2.5.0" "xindy"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -154,7 +154,7 @@
 \& \-L / \-\-language
 \& \-C / \-\-codepage
 \& \-M / \-\-module         (multiple times)
-\& \-I / \-\-input\-markup   (supported: latex, omega)
+\& \-I / \-\-input\-markup   (supported: latex, xelatex, omega)
 .Ve
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
@@ -166,9 +166,6 @@
 Files with the raw index are passed as arguments. If no arguments are
 passed, the raw index will be read from standard input.
 .PP
-\&\fBDo not use texindy with XeLaTeX or LuaLaTeX!\fR When you use these
-LaTeX engines, you must use \fBxindy \-C utf8 \-M texindy \-M page-ranges\fR instead.
-.PP
 A good introductionary description of \fBtexindy\fR appears in the
 indexing chapter of the LaTeX Companion (2nd ed.)
 .PP
@@ -229,28 +226,42 @@
 The index is sorted according to the rules of language \fIlang\fR. These
 rules are encoded in a xindy module created by \fImake-rules\fR.
 .Sp
-If no input encoding is specified via \f(CW\*(C`\-\-codepage\*(C'\fR, a xindy module
-for that language is searched with a latin, a cp, an iso, or ascii
-encoding, in that order.
-.ie n .IP """\-\-codepage"" \fIenc\fR / B <\-C> \fIenc\fR" 4
-.el .IP "\f(CW\-\-codepage\fR \fIenc\fR / B <\-C> \fIenc\fR" 4
-.IX Item "--codepage enc / B <-C> enc"
-\&\fBtexindy\fR's raw input is always assumed to be encoded in LaTeX
-Internal Character Representation (\s-1LICR\s0). I.e., non-ASCII characters
-are encoded as command sequences. This option tells xindy the encoding
-it shall use internally for sorting.
-.Sp
-Effectively, you need this option to specify the encoding of letter
-group headings.
-.Sp
-Encoding \f(CW\*(C`utf8\*(C'\fR is only supported for Latin alphabets. But if you use
-non-Latin alphabets, you probably use XeLaTeX or LuaLaTeX and then you
-must not use \fBtexindy\fR anyhow. Then direct usage of \fBxindy\fR is
-appropriate.
-.Sp
-When \f(CW\*(C`omega\*(C'\fR input markup is used, \f(CW\*(C`utf8\*(C'\fR is always used as the sort
-codepage and no inputenc module is loaded. Then this option is
-ignored.
+If no input encoding is specified via \f(CW\*(C`\-\-codepage\*(C'\fR or enforced by
+input markup, a xindy module for that language is searched with a
+latin, a cp, an iso, ascii, or utf8 encoding, in that order.
+.ie n .IP """\-\-codepage"" \fIenc\fR / \fB\-C\fR \fIenc\fR" 4
+.el .IP "\f(CW\-\-codepage\fR \fIenc\fR / \fB\-C\fR \fIenc\fR" 4
+.IX Item "--codepage enc / -C enc"
+There are two different situations and use cases for this option.
+.RS 4
+.IP "1." 4
+Input markup is \f(CW\*(C`latex\*(C'\fR (the default).
+.Sp
+Then \fBtexindy\fR's raw input is assumed to be encoded in LaTeX Internal
+Character Representation (\s-1LICR\s0). I.e., non-ASCII characters are
+encoded as command sequences. This option tells xindy the encoding it
+shall use for letter group headings. (Additionally it specifies the
+encoding used internally for sorting \*(-- but that doesn't matter for
+the result.)
+.Sp
+Only \s-1LICR\s0 encodings for Latin script alphabets are supported; more
+precisely characters that are in LaTeX latin1, latin2, and latin3 \s-1LICR\s0
+encodings.
+.Sp
+Even when you specify \f(CW\*(C`utf8\*(C'\fR as codepage, only these characters will
+be known. But if you use non-Latin alphabets, you probably use (or
+should use) XeLaTeX or LuaLaTeX and then you have a different input
+markup.
+.IP "2." 4
+Input markup is \f(CW\*(C`xelatex\*(C'\fR or \f(CW\*(C`omega\*(C'\fR.
+.Sp
+Then this option is ignored; codepage \f(CW\*(C`utf8\*(C'\fR is enforced.
+.Sp
+\&\fBtexindy\fR's raw input is assumed to be \s-1UTF\-8\s0 encoded, \s-1LICR\s0 is not
+used.
+.RE
+.RS 4
+.RE
 .ie n .IP """\-\-module"" \fImodule\fR / \fB\-M\fR \fImodule\fR" 4
 .el .IP "\f(CW\-\-module\fR \fImodule\fR / \fB\-M\fR \fImodule\fR" 4
 .IX Item "--module module / -M module"
@@ -261,17 +272,22 @@
 .el .IP "\f(CW\-\-input\-markup\fR \fIinput\fR / \fB\-I\fR \fIinput\fR" 4
 .IX Item "--input-markup input / -I input"
 Specifies the input markup of the raw index. Supported values for
-\&\fIinput\fR are \f(CW\*(C`latex\*(C'\fR and \f(CW\*(C`omega\*(C'\fR.
+\&\fIinput\fR are \f(CW\*(C`latex\*(C'\fR, \f(CW\*(C`xelatex\*(C'\fR, and \f(CW\*(C`omega\*(C'\fR.
 .Sp
 \&\f(CW\*(C`latex\*(C'\fR input markup is the one that is emitted by default from the
-LaTeX kernel, or by the \f(CW\*(C`index\*(C'\fR macro package of David Jones.
-^^\-notation of single byte characters is supported. Usage of LaTeX's
-\&\fIinputenc\fR package is assumed as well.
+LaTeX kernel, or by the \f(CW\*(C`index\*(C'\fR macro package of David Jones, when
+used with standard LaTeX or pdfLaTeX. ^^\-notation of single byte
+characters is supported. Usage of LaTeX's \fIinputenc\fR package is
+assumed as well, i.e., raw input is encoded in \s-1LICR\s0.
+.Sp
+\&\f(CW\*(C`xelatex\*(C'\fR input markup is like \f(CW\*(C`latex\*(C'\fR, but without \fIinputenc\fR
+usage. Raw input is encoded in \s-1UTF\-8\s0. LuaLaTeX has the same input
+markup, there's no special option value for it.
 .Sp
 \&\f(CW\*(C`omega\*(C'\fR input markup is like \f(CW\*(C`latex\*(C'\fR input markup, but with Omega's
-^^\-notation as encoding for non-ASCII characters. LaTeX \fIinputenc\fR
-encoding is not used then, and \f(CW\*(C`utf8\*(C'\fR is enforced to be the codepage
-for sorting.
+^^\-notation as encoding for non-ASCII characters. \s-1LICR\s0 encoding is not
+used then, and \f(CW\*(C`utf8\*(C'\fR is enforced to be the codepage for sorting and
+for output of letter group headings.
 .SH "SUPPORTED LANGUAGES / CODEPAGES"
 .IX Header "SUPPORTED LANGUAGES / CODEPAGES"
 The following languages are supported:
@@ -451,6 +467,8 @@
 Joachim Schrod
 .SH "LEGALESE"
 .IX Header "LEGALESE"
+Copyright (c) 2004\-2014 by Joachim Schrod.
+.PP
 \&\fBtexindy\fR is free software; you can redistribute it and/or modify it
 under the terms of the \s-1GNU\s0 General Public License as published by the
 Free Software Foundation; either version 2 of the License, or (at your
diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.5.0.orig/user-commands/texindy.in xindy-2.5.0/user-commands/texindy.in
--- xindy-2.5.0.orig/user-commands/texindy.in	2014-04-19 21:11:58.000000000 +0200
+++ xindy-2.5.0/user-commands/texindy.in	2014-05-11 15:45:44.000000000 +0200
@@ -28,7 +28,7 @@
  -L / --language
  -C / --codepage
  -M / --module         (multiple times)
- -I / --input-markup   (supported: latex, omega)
+ -I / --input-markup   (supported: latex, xelatex, omega)
 
 
 =head1 DESCRIPTION
@@ -41,9 +41,6 @@
 Files with the raw index are passed as arguments. If no arguments are
 passed, the raw index will be read from standard input.
 
-B<Do not use texindy with XeLaTeX or LuaLaTeX!> When you use these
-LaTeX engines, you must use B<xindy -C utf8 -M texindy -M page-ranges> instead.
-
 A good introductionary description of B<texindy> appears in the
 indexing chapter of the LaTeX Companion (2nd ed.)
 
@@ -105,28 +102,46 @@
 The index is sorted according to the rules of language I<lang>. These
 rules are encoded in a xindy module created by I<make-rules>.
 
-If no input encoding is specified via C<--codepage>, a xindy module
-for that language is searched with a latin, a cp, an iso, or ascii
-encoding, in that order.
-
-=item C<--codepage> I<enc> / B <-C> I<enc>
-
-B<texindy>'s raw input is always assumed to be encoded in LaTeX
-Internal Character Representation (LICR). I.e., non-ASCII characters
-are encoded as command sequences. This option tells xindy the encoding
-it shall use internally for sorting.
-
-Effectively, you need this option to specify the encoding of letter
-group headings.
-
-Encoding C<utf8> is only supported for Latin alphabets. But if you use
-non-Latin alphabets, you probably use XeLaTeX or LuaLaTeX and then you
-must not use B<texindy> anyhow. Then direct usage of B<xindy> is
-appropriate.
-
-When C<omega> input markup is used, C<utf8> is always used as the sort
-codepage and no inputenc module is loaded. Then this option is
-ignored.
+If no input encoding is specified via C<--codepage> or enforced by
+input markup, a xindy module for that language is searched with a
+latin, a cp, an iso, ascii, or utf8 encoding, in that order.
+
+=item C<--codepage> I<enc> / B<-C> I<enc>
+
+There are two different situations and use cases for this option.
+
+=over
+
+=item 1.
+
+Input markup is C<latex> (the default).
+
+Then B<texindy>'s raw input is assumed to be encoded in LaTeX Internal
+Character Representation (LICR). I.e., non-ASCII characters are
+encoded as command sequences. This option tells xindy the encoding it
+shall use for letter group headings. (Additionally it specifies the
+encoding used internally for sorting -- but that doesn't matter for
+the result.)
+
+Only LICR encodings for Latin script alphabets are supported; more
+precisely characters that are in LaTeX latin1, latin2, and latin3 LICR
+encodings.
+
+Even when you specify C<utf8> as codepage, only these characters will
+be known. But if you use non-Latin alphabets, you probably use (or
+should use) XeLaTeX or LuaLaTeX and then you have a different input
+markup.
+
+=item 2.
+
+Input markup is C<xelatex> or C<omega>.
+
+Then this option is ignored; codepage C<utf8> is enforced.
+
+B<texindy>'s raw input is assumed to be UTF-8 encoded, LICR is not
+used.
+
+=back
 
 =item C<--module> I<module> / B<-M> I<module>
 
@@ -137,17 +152,22 @@
 =item C<--input-markup> I<input> / B<-I> I<input>
 
 Specifies the input markup of the raw index. Supported values for
-I<input> are C<latex> and C<omega>.
+I<input> are C<latex>, C<xelatex>, and C<omega>.
 
 C<latex> input markup is the one that is emitted by default from the
-LaTeX kernel, or by the C<index> macro package of David Jones.
-^^-notation of single byte characters is supported. Usage of LaTeX's
-I<inputenc> package is assumed as well.
+LaTeX kernel, or by the C<index> macro package of David Jones, when
+used with standard LaTeX or pdfLaTeX. ^^-notation of single byte
+characters is supported. Usage of LaTeX's I<inputenc> package is
+assumed as well, i.e., raw input is encoded in LICR.
+
+C<xelatex> input markup is like C<latex>, but without I<inputenc>
+usage. Raw input is encoded in UTF-8. LuaLaTeX has the same input
+markup, there's no special option value for it.
 
 C<omega> input markup is like C<latex> input markup, but with Omega's
-^^-notation as encoding for non-ASCII characters. LaTeX I<inputenc>
-encoding is not used then, and C<utf8> is enforced to be the codepage
-for sorting.
+^^-notation as encoding for non-ASCII characters. LICR encoding is not
+used then, and C<utf8> is enforced to be the codepage for sorting and
+for output of letter group headings.
 
 =back
 
@@ -346,6 +366,8 @@
 
 =head1 LEGALESE
 
+Copyright (c) 2004-2014 by Joachim Schrod.
+
 B<texindy> is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
 Free Software Foundation; either version 2 of the License, or (at your
@@ -553,15 +575,16 @@
     unshift (@modules, ($letter_ordering ? 'letter-order' : 'word-order'));
     unshift (@modules, 'page-ranges')  unless $no_ranges;
 
-    # Check that the input markup is known. omega markup implies
+    # Check that the input markup is known. xelatex and omega markup implies
     # codepage utf8 for sorting, but no inputenc. We set the codepage
     # to undef to prevent loading of the inputenc module. Setting it
-    # to utf8 for the sort encoding is done by the xindy script.
-    if ( $input_markup ne 'latex' && $input_markup ne 'omega' ) {
+    # to utf8 for sort encoding is done by the xindy script.
+    if ( $input_markup ne 'latex'  &&  $input_markup ne 'xelatex'  &&
+	 $input_markup ne 'omega' ) {
 	print STDERR "Unsupported input markup $input_markup.\n";
 	usage(1);
     }
-    if ( $input_markup eq 'omega' ) {
+    if ( $input_markup eq 'xelatex'  ||  $input_markup eq 'omega' ) {
 	$codepage = undef;
     }
 
diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.5.0.orig/user-commands/xindy.1 xindy-2.5.0/user-commands/xindy.1
--- xindy-2.5.0.orig/user-commands/xindy.1	2014-04-19 21:56:40.000000000 +0200
+++ xindy-2.5.0/user-commands/xindy.1	2014-05-11 15:45:44.000000000 +0200
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "xindy 1"
-.TH xindy 1 "2014-04-19" "Release 2.5" "xindy"
+.TH xindy 1 "2014-05-11" "Release 2.5.0" "xindy"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -152,7 +152,7 @@
 \& \-L / \-\-language
 \& \-C / \-\-codepage
 \& \-M / \-\-module         (multiple times)
-\& \-I / \-\-input\-markup   (supported: latex, omega, xindy)
+\& \-I / \-\-input\-markup   (supported: latex, xelatex, omega, xindy)
 .Ve
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
@@ -222,9 +222,9 @@
 The index is sorted according to the rules of language \fIlang\fR. These
 rules are encoded in a xindy module created by \fImake-rules\fR.
 .Sp
-If no input encoding is specified via \f(CW\*(C`\-\-codepage\*(C'\fR, a xindy module
-for that language is searched with a latin, a cp, an iso, ascii, or utf8
-encoding, in that order.
+If no input encoding is specified via \f(CW\*(C`\-\-codepage\*(C'\fR or enforced by
+input markup, a xindy module for that language is searched with a
+latin, a cp, an iso, ascii, or utf8 encoding, in that order.
 .Sp
 Language modules are either placed in the \fIlang\fR or in the
 \&\fIcontrib/lang\fR sub-directory of the modules base directory.
@@ -232,11 +232,15 @@
 .el .IP "\f(CW\-\-codepage\fR \fIenc\fR / \fB\-C\fR \fIenc\fR" 4
 .IX Item "--codepage enc / -C enc"
 The raw input is in input encoding \fIenc\fR. This information is used to
-select the correct xindy sort module and also the \fIinputenc\fR target
-encoding for \f(CW\*(C`latex\*(C'\fR input markup.
+select the correct xindy sort module and output encoding of letter
+group headings.
 .Sp
-When \f(CW\*(C`omega\*(C'\fR input markup is used, \f(CW\*(C`utf8\*(C'\fR is always used as
-codepage, this option is then ignored.
+When \f(CW\*(C`xelatex\*(C'\fR or \f(CW\*(C`omega\*(C'\fR input markup is used, \f(CW\*(C`utf8\*(C'\fR is always
+used as codepage, then this option is ignored.
+.Sp
+If raw input is in \s-1LICR\s0, \fItexindy\fR\|(1) should be used instead of
+\&\fIxindy\fR\|(1). It will activate a mapping of \fIinputenc\fR encoding for
+\&\f(CW\*(C`latex\*(C'\fR input markup to the chosen raw input codepage.
 .ie n .IP """\-\-module"" \fImodule\fR / \fB\-M\fR \fImodule\fR" 4
 .el .IP "\f(CW\-\-module\fR \fImodule\fR / \fB\-M\fR \fImodule\fR" 4
 .IX Item "--module module / -M module"
@@ -247,16 +251,17 @@
 .el .IP "\f(CW\-\-input\-markup\fR \fIinput\fR / \fB\-I\fR \fIinput\fR" 4
 .IX Item "--input-markup input / -I input"
 Specifies the input markup of the raw index. Supported values for
-\&\fIinput\fR are \f(CW\*(C`latex\*(C'\fR, \f(CW\*(C`omega\*(C'\fR, and \f(CW\*(C`xindy\*(C'\fR.
+\&\fIinput\fR are \f(CW\*(C`latex\*(C'\fR, \f(CW\*(C`xelatex\*(C'\fR, \f(CW\*(C`omega\*(C'\fR, and \f(CW\*(C`xindy\*(C'\fR.
 .Sp
-\&\f(CW\*(C`latex\*(C'\fR input markup is the one that is emitted by default from the
-LaTeX kernel, or by the \f(CW\*(C`index\*(C'\fR macro package of David Jones.
-^^\-notation of single byte characters is supported. Usage of LaTeX's
-\&\fIinputenc\fR package is assumed as well.
+\&\f(CW\*(C`latex\*(C'\fR and \f(CW\*(C`xelatex\*(C'\fR input markup is the one that is emitted by
+default from the LaTeX kernel, or by the \f(CW\*(C`index\*(C'\fR macro package of
+David Jones. ^^\-notation of single byte characters is supported.
+Remapping of LICR-encoded characters is not done; use \fItexindy\fR\|(1) for
+that. Use input markup \f(CW\*(C`latex\*(C'\fR if you use standard LaTeX or pdfLaTeX
+and use input markup \f(CW\*(C`xelatex\*(C'\fR if you use XeLaTeX or LuaLaTeX.
 .Sp
 \&\f(CW\*(C`omega\*(C'\fR input markup is like \f(CW\*(C`latex\*(C'\fR input markup, but with Omega's
-^^\-notation as encoding for non-ASCII characters. LaTeX \fIinputenc\fR
-encoding is not used then, and \f(CW\*(C`utf8\*(C'\fR is enforced to be the codepage.
+^^\-notation as encoding for non-ASCII characters.
 .Sp
 \&\f(CW\*(C`xindy\*(C'\fR input markup is specified in the xindy manual.
 .ie n .IP """\-\-interactive""" 4
@@ -418,7 +423,7 @@
 Joachim Schrod
 .SH "LEGALESE"
 .IX Header "LEGALESE"
-Copyright (c) 2004\-2010 by Joachim Schrod.
+Copyright (c) 2004\-2014 by Joachim Schrod.
 .PP
 \&\fBxindy\fR is free software; you can redistribute it and/or modify it
 under the terms of the \s-1GNU\s0 General Public License as published by the
diff -ur -N -x Makefile.in -x autom4te.cache xindy-2.5.0.orig/user-commands/xindy.in xindy-2.5.0/user-commands/xindy.in
--- xindy-2.5.0.orig/user-commands/xindy.in	2014-04-20 12:12:07.000000000 +0200
+++ xindy-2.5.0/user-commands/xindy.in	2014-05-11 15:45:44.385094771 +0200
@@ -26,7 +26,7 @@
  -L / --language
  -C / --codepage
  -M / --module         (multiple times)
- -I / --input-markup   (supported: latex, omega, xindy)
+ -I / --input-markup   (supported: latex, xelatex, omega, xindy)
 
 
 =head1 DESCRIPTION
@@ -98,9 +98,9 @@
 The index is sorted according to the rules of language I<lang>. These
 rules are encoded in a xindy module created by I<make-rules>.
 
-If no input encoding is specified via C<--codepage>, a xindy module
-for that language is searched with a latin, a cp, an iso, ascii, or utf8
-encoding, in that order.
+If no input encoding is specified via C<--codepage> or enforced by
+input markup, a xindy module for that language is searched with a
+latin, a cp, an iso, ascii, or utf8 encoding, in that order.
 
 Language modules are either placed in the F<lang> or in the
 F<contrib/lang> sub-directory of the modules base directory.
@@ -108,11 +108,15 @@
 =item C<--codepage> I<enc> / B<-C> I<enc>
 
 The raw input is in input encoding I<enc>. This information is used to
-select the correct xindy sort module and also the I<inputenc> target
-encoding for C<latex> input markup.
+select the correct xindy sort module and output encoding of letter
+group headings.
 
-When C<omega> input markup is used, C<utf8> is always used as
-codepage, this option is then ignored.
+When C<xelatex> or C<omega> input markup is used, C<utf8> is always
+used as codepage, then this option is ignored.
+
+If raw input is in LICR, texindy(1) should be used instead of
+xindy(1). It will activate a mapping of I<inputenc> encoding for
+C<latex> input markup to the chosen raw input codepage.
 
 =item C<--module> I<module> / B<-M> I<module>
 
@@ -123,16 +127,17 @@
 =item C<--input-markup> I<input> / B<-I> I<input>
 
 Specifies the input markup of the raw index. Supported values for
-I<input> are C<latex>, C<omega>, and C<xindy>.
+I<input> are C<latex>, C<xelatex>, C<omega>, and C<xindy>.
 
-C<latex> input markup is the one that is emitted by default from the
-LaTeX kernel, or by the C<index> macro package of David Jones.
-^^-notation of single byte characters is supported. Usage of LaTeX's
-I<inputenc> package is assumed as well.
+C<latex> and C<xelatex> input markup is the one that is emitted by
+default from the LaTeX kernel, or by the C<index> macro package of
+David Jones. ^^-notation of single byte characters is supported.
+Remapping of LICR-encoded characters is not done; use texindy(1) for
+that. Use input markup C<latex> if you use standard LaTeX or pdfLaTeX
+and use input markup C<xelatex> if you use XeLaTeX or LuaLaTeX.
 
 C<omega> input markup is like C<latex> input markup, but with Omega's
-^^-notation as encoding for non-ASCII characters. LaTeX I<inputenc>
-encoding is not used then, and C<utf8> is enforced to be the codepage.
+^^-notation as encoding for non-ASCII characters.
 
 C<xindy> input markup is specified in the xindy manual.
 
@@ -320,7 +325,7 @@
 
 =head1 LEGALESE
 
-Copyright (c) 2004-2010 by Joachim Schrod.
+Copyright (c) 2004-2014 by Joachim Schrod.
 
 B<xindy> is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
@@ -484,7 +489,7 @@
  -L / --language
  -C / --codepage
  -M / --module         (multiple times)
- -I / --input-markup   (supported: latex, omega, xindy)
+ -I / --input-markup   (supported: latex, xelatex, omega, xindy)
 
 _EOT_
   ;
@@ -538,7 +543,7 @@
     }
     $raw_index = create_raw_index();	# processes @ARGV
     my $filter_cmd = '';
-    if ( $input_markup eq 'latex' ) {
+    if ( $input_markup =~ /latex$/ ) {
 	$filter_cmd = "$cmd_dir/tex2xindy";
     } elsif ( $input_markup eq 'omega' ) {
 	$filter_cmd = "$cmd_dir/tex2xindy -o";
@@ -633,12 +638,12 @@
     # Check that the input markup is known.
     # omega markup implies codepage utf8.
     if ( $input_markup  &&
-	 $input_markup ne 'latex' && $input_markup ne 'omega' &&
-	 $input_markup ne 'xindy' ) {
+	 $input_markup ne 'latex'  &&  $input_markup ne 'xelatex'  &&
+	 $input_markup ne 'omega'  &&  $input_markup ne 'xindy' ) {
 	print STDERR "Unsupported input markup $input_markup.\n";
 	usage(1);
     }
-    if ( $input_markup eq 'omega' ) {
+    if ( $input_markup eq 'xelatex'  ||  $input_markup eq 'omega' ) {
 	@codepages = qw(utf8);
     }
 
