Index: pango/break.c
===================================================================
RCS file: /cvs/gnome/pango/pango/break.c,v
retrieving revision 1.42
diff -u -r1.42 break.c
--- pango/break.c	11 Apr 2006 08:31:43 -0000	1.42
+++ pango/break.c	11 Sep 2006 14:08:39 -0000
@@ -1624,6 +1624,7 @@
   const char *end;
   PangoEngineLang* range_engine;
   const char *range_start;
+  PangoScript script;
   int chars_in_range;
   static guint engine_type_id = 0;
   static guint render_type_id = 0;
@@ -1649,8 +1650,8 @@
   lang_map = pango_find_map (language, engine_type_id, render_type_id);
 
   range_start = text;
-  range_engine = (PangoEngineLang*) pango_map_get_engine (lang_map,
-                                                          g_utf8_get_char (text));
+  script = pango_script_for_unichar (g_utf8_get_char (text));
+  range_engine = (PangoEngineLang*) pango_map_get_engine (lang_map, script);
   analysis.lang_engine = range_engine;
   chars_broken = 0;
   chars_in_range = 1;
@@ -1664,9 +1665,9 @@
       g_assert (range_start <= end);
       g_assert (end - pos < length);
 
+      script = pango_script_for_unichar (g_utf8_get_char (pos));
       analysis.lang_engine =
-        (PangoEngineLang*) pango_map_get_engine (lang_map,
-                                                 g_utf8_get_char (pos));
+        (PangoEngineLang*) pango_map_get_engine (lang_map, script);
 
       if (range_engine != analysis.lang_engine)
         {
Index: pango/pangofc-font.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pangofc-font.c,v
retrieving revision 1.40
diff -u -r1.40 pangofc-font.c
--- pango/pangofc-font.c	22 May 2006 20:25:54 -0000	1.40
+++ pango/pangofc-font.c	11 Sep 2006 14:08:39 -0000
@@ -263,9 +263,11 @@
 			   guint32        ch)
 {
   PangoMap *shaper_map = NULL;
+  PangoScript script;
 
   shaper_map = pango_fc_get_shaper_map (language);
-  return (PangoEngineShape *)pango_map_get_engine (shaper_map, ch);
+  script = pango_script_for_unichar (ch);
+  return (PangoEngineShape *)pango_map_get_engine (shaper_map, script);
 }
 
 static PangoCoverage *
Index: pango/pangowin32.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pangowin32.c,v
retrieving revision 1.73
diff -u -r1.73 pangowin32.c
--- pango/pangowin32.c	23 May 2006 08:10:24 -0000	1.73
+++ pango/pangowin32.c	11 Sep 2006 14:08:40 -0000
@@ -863,9 +863,11 @@
 			      guint32        ch)
 {
   PangoMap *shape_map = NULL;
+  PangoScript script;
 
   shape_map = pango_win32_get_shaper_map (lang);
-  return (PangoEngineShape *)pango_map_get_engine (shape_map, ch);
+  script = pango_script_for_unichar (ch);
+  return (PangoEngineShape *)pango_map_get_engine (shape_map, script);
 }
 
 /* Utility functions */
Index: pango/pangox.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pangox.c,v
retrieving revision 1.99
diff -u -r1.99 pangox.c
--- pango/pangox.c	13 Apr 2006 06:11:21 -0000	1.99
+++ pango/pangox.c	11 Sep 2006 14:08:41 -0000
@@ -1361,9 +1361,11 @@
 			  guint32        ch)
 {
   PangoMap *shape_map = NULL;
+  PangoScript script;
 
   shape_map = pango_x_get_shaper_map (language);
-  return (PangoEngineShape *)pango_map_get_engine (shape_map, ch);
+  script = pango_script_for_unichar (ch);
+  return (PangoEngineShape *)pango_map_get_engine (shape_map, script);
 }
 
 /* Utility functions */
