Index: fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphTable.java
===================================================================
--- fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphTable.java	(revision 1766683)
+++ fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphTable.java	(working copy)
@@ -23,6 +23,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
@@ -262,7 +263,7 @@
      * @return ordered array of assembled lookup table use specifications
      */
     public UseSpec[] assembleLookups(String[] features, Map<LookupSpec, List<LookupTable>> lookups) {
-        TreeSet<UseSpec> uss = new TreeSet<UseSpec>();
+        Set<UseSpec> uss = new LinkedHashSet<UseSpec>();
         for (String feature : features) {
             for (Object o : lookups.entrySet()) {
                 Map.Entry<LookupSpec, List<LookupTable>> e = (Map.Entry<LookupSpec, List<LookupTable>>) o;
Index: fop-core/src/main/java/org/apache/fop/complexscripts/scripts/ArabicScriptProcessor.java
===================================================================
--- fop-core/src/main/java/org/apache/fop/complexscripts/scripts/ArabicScriptProcessor.java	(revision 1766683)
+++ fop-core/src/main/java/org/apache/fop/complexscripts/scripts/ArabicScriptProcessor.java	(working copy)
@@ -51,14 +51,14 @@
     /** features to use for substitutions */
     private static final String[] GSUB_FEATURES =
     {
-        "calt",                                                 // contextual alternates
         "ccmp",                                                 // glyph composition/decomposition
+        "isol",                                                 // isolated formas
         "fina",                                                 // final (terminal) forms
+        "medi",                                                 // medial forms
         "init",                                                 // initial forms
-        "isol",                                                 // isolated formas
-        "liga",                                                 // standard ligatures
-        "medi",                                                 // medial forms
-        "rlig"                                                  // required ligatures
+        "rlig",                                                 // required ligatures
+        "calt",                                                 // contextual alternates
+        "liga"                                                  // standard ligatures
     };
 
     /** features to use for positioning */
