Index: indic-ot.c
===================================================================
RCS file: /cvs/gnome/pango/modules/indic/indic-ot.c,v
retrieving revision 1.2
diff -u -3 -p -r1.2 indic-ot.c
--- indic-ot.c	20 Aug 2002 19:51:37 -0000	1.2
+++ indic-ot.c	1 Jun 2003 06:03:50 -0000
@@ -204,20 +204,20 @@ glong indic_ot_reorder(const gunichar *c
 
             /* Check for REPH at front of syllable */
             if (length > 2 && indic_ot_is_reph(class_table, chars[prev]) && indic_ot_is_virama(class_table, chars[prev + 1])) {
-                baseLimit = prev + 2;
+                baseLimit += 2;
 
                 /* Check for eyelash RA, if the script supports it */
                 if ((class_table->scriptFlags & SF_EYELASH_RA) != 0 &&
-                    chars[prev + 2] == C_SIGN_ZWJ) {
+                    chars[baseLimit] == C_SIGN_ZWJ) {
                     if (length > 3) {
                         baseLimit += 1;
                     } else {
-                        baseLimit = prev;
+                        baseLimit -= 2;
                     }
                 }
             }
 
-            while (lastConsonant >= baseLimit && !indic_ot_is_consonant(class_table, chars[lastConsonant])) {
+            while (lastConsonant > baseLimit && !indic_ot_is_consonant(class_table, chars[lastConsonant])) {
                 lastConsonant -= 1;
             }
 
@@ -231,7 +231,7 @@ glong indic_ot_reorder(const gunichar *c
                 gboolean supressVattu = true;
                 glong bcSpan;
 
-                while (baseConsonant >= baseLimit) {
+                while (baseConsonant > baseLimit) {
                     IndicOTCharClass charClass = indic_ot_get_char_class(class_table, chars[baseConsonant]);
 
                     if (IS_CONSONANT(charClass)) {
@@ -258,11 +258,11 @@ glong indic_ot_reorder(const gunichar *c
 
                     baseConsonant -= 1;
                 }
-
+#if 0
                 if (baseConsonant < baseLimit) {
                     baseConsonant = baseLimit;
                 }
-
+#endif
                 /* Write Mpre */
                 writeMpre(&output);
 
@@ -279,7 +279,7 @@ glong indic_ot_reorder(const gunichar *c
 
                 for (i = baseLimit; i < baseConsonant; i += 1) {
                     gunichar ch = chars[i];
-                    gulong tag = blwf_p;
+                    gulong tag = half_p;
                     IndicOTCharClass charClass = indic_ot_get_char_class(class_table, ch);
 
                     if (IS_CONSONANT(charClass)) {
