diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 5023074..c652ff4 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -384,6 +384,7 @@ gtk_private_h_sources =		\
 	gtkplugprivate.h	\
 	gtkprintoperation-private.h\
 	gtkprintutils.h		\
+	gtkrangeprivate.h       \
 	gtkrbtree.h		\
 	gtkrecentchooserdefault.h \
 	gtkrecentchooserprivate.h \
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 82ef2d6..1fcf243 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -3916,5 +3916,33 @@ _gtk_range_get_stop_positions (GtkRange  *range,
   return range->layout->n_marks;
 }
 
+void
+_gtk_range_get_internal_geometry (GtkRange     *range,
+                                  GdkRectangle *trough,
+                                  GdkRectangle *slider,
+                                  GdkRectangle *stepper_a,
+                                  GdkRectangle *stepper_b,
+                                  GdkRectangle *stepper_c,
+                                  GdkRectangle *stepper_d)
+{
+  if (trough)
+    *trough = range->layout->trough;
+
+  if (slider)
+    *slider = range->layout->slider;
+
+  if (stepper_a)
+    *stepper_a = range->layout->stepper_a;
+
+  if (stepper_b)
+    *stepper_b = range->layout->stepper_b;
+
+  if (stepper_c)
+    *stepper_c = range->layout->stepper_c;
+
+  if (stepper_c)
+    *stepper_c = range->layout->stepper_d;
+}
+
 #define __GTK_RANGE_C__
 #include "gtkaliasdef.c"
