diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt
index b5235901f7..684b30db99 100644
--- a/docs/reference/gtk/gtk-sections.txt
+++ b/docs/reference/gtk/gtk-sections.txt
@@ -4675,6 +4675,7 @@ gtk_tree_path_append_index
gtk_tree_path_prepend_index
gtk_tree_path_get_depth
gtk_tree_path_get_indices
+gtk_tree_path_get_indices_with_depth
gtk_tree_path_free
gtk_tree_path_copy
gtk_tree_path_compare
diff --git a/docs/reference/gtk/tmpl/gtktreemodel.sgml b/docs/reference/gtk/tmpl/gtktreemodel.sgml
index e16a9fdb79..d635009210 100644
--- a/docs/reference/gtk/tmpl/gtktreemodel.sgml
+++ b/docs/reference/gtk/tmpl/gtktreemodel.sgml
@@ -412,6 +412,16 @@ compatibility reasons.
@Returns:
+
+
+
+
+
+@path:
+@depth:
+@Returns:
+
+
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index ccda44841f..a285bfde05 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -4671,6 +4671,7 @@ gtk_tree_path_down
gtk_tree_path_free
gtk_tree_path_get_depth
gtk_tree_path_get_indices
+gtk_tree_path_get_indices_with_depth
gtk_tree_path_get_type G_GNUC_CONST
gtk_tree_path_is_ancestor
gtk_tree_path_is_descendant
diff --git a/gtk/gtktreemodel.c b/gtk/gtktreemodel.c
index 5bdce35479..bf45a31f97 100644
--- a/gtk/gtktreemodel.c
+++ b/gtk/gtktreemodel.c
@@ -622,6 +622,31 @@ gtk_tree_path_get_indices (GtkTreePath *path)
return path->indices;
}
+/**
+ * gtk_tree_path_get_indices_with_depth:
+ * @path: A #GtkTreePath.
+ * @depth: Number of elements returned in the integer array
+ *
+ * Returns the current indices of @path.
+ * This is an array of integers, each representing a node in a tree.
+ * It also returns the number of elements in the array.
+ * The array should not be freed.
+ *
+ * Return value: (array length=depth): The current indices, or %NULL.
+ *
+ * Since: 3.0
+ **/
+gint *
+gtk_tree_path_get_indices_with_depth (GtkTreePath *path, gint *depth)
+{
+ g_return_val_if_fail (path != NULL, NULL);
+
+ if (depth)
+ *depth = path->depth;
+
+ return path->indices;
+}
+
/**
* gtk_tree_path_free:
* @path: A #GtkTreePath.
diff --git a/gtk/gtktreemodel.h b/gtk/gtktreemodel.h
index b48e87b642..ba0fe4ef3e 100644
--- a/gtk/gtktreemodel.h
+++ b/gtk/gtktreemodel.h
@@ -134,6 +134,10 @@ void gtk_tree_path_prepend_index (GtkTreePath *path,
gint index_);
gint gtk_tree_path_get_depth (GtkTreePath *path);
gint *gtk_tree_path_get_indices (GtkTreePath *path);
+
+gint *gtk_tree_path_get_indices_with_depth (GtkTreePath *path,
+ gint *depth);
+
void gtk_tree_path_free (GtkTreePath *path);
GtkTreePath *gtk_tree_path_copy (const GtkTreePath *path);
GType gtk_tree_path_get_type (void) G_GNUC_CONST;