diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c
index 781d141..7b249d0 100644
--- a/gtk/gtktextiter.c
+++ b/gtk/gtktextiter.c
@@ -1417,6 +1417,26 @@ gtk_text_iter_editable (const GtkTextIter *iter,
   return retval;
 }
 
+GtkTextDirection
+gtk_text_iter_get_text_direction (const GtkTextIter *iter,
+                                  GtkTextDirection   default_dir)
+{
+  GtkTextAttributes *values;
+  GtkTextDirection retval;
+  
+  values = gtk_text_attributes_new ();
+
+  values->direction = default_dir;
+
+  gtk_text_iter_get_attributes (iter, values);
+
+  retval = values->direction;
+
+  gtk_text_attributes_unref (values);
+
+  return retval;
+}
+
 /**
  * gtk_text_iter_can_insert:
  * @iter: an iterator
diff --git a/gtk/gtktextiter.h b/gtk/gtktextiter.h
index 994f996..b7a381f 100644
--- a/gtk/gtktextiter.h
+++ b/gtk/gtktextiter.h
@@ -407,6 +407,10 @@ GDK_AVAILABLE_IN_ALL
 void     gtk_text_iter_order           (GtkTextIter *first,
                                         GtkTextIter *second);
 
+GDK_AVAILABLE_IN_ALL
+GtkTextDirection gtk_text_iter_get_text_direction (const GtkTextIter *iter,
+                                                   GtkTextDirection   default_dir);
+
 G_END_DECLS
 
 #endif
