--- modules/indic/mprefixups.c.orig	2008-04-24 12:37:35.000000000 +0530
+++ modules/indic/mprefixups.c	2008-04-24 12:43:49.000000000 +0530
@@ -76,13 +76,18 @@
 	int n_glyphs;
 	PangoOTGlyph *mpreSave;
 
-	/* determine post GSUB location of baseIndex and mpreIndex */
+	/* determine post GSUB location of baseIndex and mpreIndex 
+	 * and fix pre-base matra reorder for conjuncts 
+	 */
 
 	pango_ot_buffer_get_glyphs (buffer, &glyphs, &n_glyphs);
 
 	for (i = 0; i < n_glyphs; i++) {
-	    if (baseGlyph < 0 && glyphs[i].cluster == baseIndex)
-		baseGlyph = i;
+	  if (baseGlyph < 0 && (glyphs[i].cluster == baseIndex) ||
+	      (glyphs[i].cluster == (baseIndex - 2)) ||
+	      (glyphs[i].cluster == (baseIndex - 4)) ||
+	      (glyphs[i].cluster == (baseIndex - 6)) )
+	    baseGlyph = i;
 	    if (glyphs[i].cluster == mpreIndex) {
 		    if (mpreGlyph < 0)
 			    mpreGlyph = i;
