Index: modules/indic/indic-lang.c
===================================================================
--- modules/indic/indic-lang.c	(revision 2356)
+++ modules/indic/indic-lang.c	(working copy)
@@ -34,7 +34,12 @@
 #define INDIC_ENGINE_INFO(script)					\
   {#script ENGINE_SUFFIX, PANGO_ENGINE_TYPE_LANG, RENDER_TYPE, script##_scripts, G_N_ELEMENTS(script##_scripts)}
 
+#define BENGALI_RRA 0x09DC
+#define BENGALI_YYA 0x09DF
 
+#define IS_COMPOSITE_WITH_BENGALI_NUKTA(c) (BENGALI_RRA <= (c) && c <= BENGALI_YYA)
+
+
 static PangoEngineScriptInfo deva_scripts[] = {
   { PANGO_SCRIPT_DEVANAGARI, "*" }
 };
@@ -207,7 +212,16 @@
 	      attrs[i].is_mandatory_break = FALSE;
 	    }
 	}
+    /* Unset backspace_deletes_character for Bengali RRA, RHA and 
+     * YYA (U+09DC, U+09DD, U+09DF). Fixes bug 345066.
+     *
+     * FIXME: This might be needed for a few other Indic languages 
+     *        as well.
+     */
+    if (G_UNLIKELY(IS_COMPOSITE_WITH_BENGALI_NUKTA(this_wc))) {
+        attrs[i+1].backspace_deletes_character = FALSE;
     }
+    }
 }
 
 static void
