Index: gtk/gtktextiter.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtktextiter.c,v
retrieving revision 1.85
diff -u -p -r1.85 gtktextiter.c
--- gtk/gtktextiter.c	13 Jun 2005 05:15:10 -0000	1.85
+++ gtk/gtktextiter.c	31 Oct 2005 23:39:01 -0000
@@ -2394,19 +2394,14 @@ gtk_text_iter_backward_chars (GtkTextIte
 
       if (real->line_byte_offset >= 0)
         {
+          const char *p;
           gint new_byte_offset;
           gint i;
 
-          new_byte_offset = 0;
-          i = 0;
-          while (i < real->segment_char_offset)
-            {
-              const char * start = real->segment->body.chars + new_byte_offset;
-              new_byte_offset += g_utf8_next_char (start) - start;
-
-              ++i;
-            }
+          p = g_utf8_offset_to_pointer (real->segment->body.chars,
+                                        real->segment_char_offset);
 
+          new_byte_offset = p - real->segment->body.chars;
           real->line_byte_offset -= (real->segment_byte_offset - new_byte_offset);
           real->segment_byte_offset = new_byte_offset;
         }
