Index: arabic-lang.c
===================================================================
RCS file: /cvs/gnome/pango/modules/arabic/arabic-lang.c,v
retrieving revision 1.2
diff -u -r1.2 arabic-lang.c
--- arabic-lang.c	18 Oct 2006 20:04:31 -0000	1.2
+++ arabic-lang.c	5 Nov 2006 17:05:35 -0000
@@ -71,10 +71,18 @@
 
       /*
        * Unset backspace_deletes_character for various combinations:
+       * FIXME: Ordering these in some other way may lower the time spent here, or not.
        */
       if (G_UNLIKELY (
-	   this_wc == 0x0622 /* ARABIC LETTER ALEF WITH MADDA ABOVE */ ||
-	  (prev_wc == 0x0627 /* ARABIC LETTER ALEF */ && this_wc == 0x0653 /* ARABIC MADDAH ABOVE */)
+	  /* ARABIC LETTER ALEF WITH MADDA ABOVE to ARABIC LETTER YEH WITH HAMZA ABOVE */
+	  (0x0622 <= this_wc && this_wc <= 0x0626) ||
+	  /* And then the combinations that make them */
+	  (prev_wc == 0x0627 /* ARABIC LETTER ALEF */ &&
+	     0x0653 <= this_wc /* ARABIC MADDAH ABOVE to ... */ &&
+	     this_wc <= 0x0655 /* ... ARABIC HAMZA BELOW */) ||
+	  (this_wc == 0x0654 /* ARABIC HAMZA ABOVE */ &&
+	    (prev_wc == 0x0648 /* ARABIC LETTER WAW */ ||
+	     prev_wc == 0x064A /* ARABIC LETTER YEH */))
 	 ))
         attrs[i+1].backspace_deletes_character = FALSE;
     }
