Index: modules/indic/indic-ot-class-tables.c
===================================================================
--- modules/indic/indic-ot-class-tables.c	(revision 2529)
+++ modules/indic/indic-ot-class-tables.c	(working copy)
@@ -270,7 +270,7 @@
 #define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT)
 #define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | 3)
 #define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | 3)
-#define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT )
+#define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_PROCESS_ZWJ)
 #define SINH_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_PROCESS_ZWJ)
 
 /*
Index: modules/indic/indic-ot.c
===================================================================
--- modules/indic/indic-ot.c	(revision 2529)
+++ modules/indic/indic-ot.c	(working copy)
@@ -259,6 +259,12 @@
 	case CC_NUKTA:
 	case CC_VIRAMA:
 	case CC_AL_LAKUNA:
+	    /* patch for rendering fix for Malayalam SAMVRUTHOKARA by suresh */
+	    if (chars[prev - 1] == 0x0D41) {
+	       	 writeChar(&output, chars[prev], prev, blwf_p);
+		 break;
+	    }
+	    /* end patch */
 	    writeChar(&output, C_DOTTED_CIRCLE, prev, blwf_p);
 	    writeChar(&output, chars[prev], prev, blwf_p);
 	    break;
