c34e24f273d7025e11f556fd3a4a302ee1a7a75d
diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt
index 4cdb79f..8b8c0f9 100644
--- a/docs/reference/gtk/gtk-sections.txt
+++ b/docs/reference/gtk/gtk-sections.txt
@@ -2702,6 +2702,9 @@ gtk_radio_button_new_with_mnemonic_from_widget
 gtk_radio_button_group
 gtk_radio_button_set_group
 gtk_radio_button_get_group
+gtk_radio_button_set_value
+gtk_radio_button_get_value
+gtk_radio_button_get_current_value
 <SUBSECTION Standard>
 GTK_RADIO_BUTTON
 GTK_IS_RADIO_BUTTON
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 2c79635..83809b2 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2953,6 +2953,8 @@ gtk_radio_action_set_group
 #if IN_FILE(__GTK_RADIO_BUTTON_C__)
 gtk_radio_button_get_group
 gtk_radio_button_get_type G_GNUC_CONST
+gtk_radio_button_get_current_value
+gtk_radio_button_get_value
 gtk_radio_button_new
 gtk_radio_button_new_from_widget
 gtk_radio_button_new_with_label
@@ -2960,6 +2962,7 @@ gtk_radio_button_new_with_label_from_widget
 gtk_radio_button_new_with_mnemonic
 gtk_radio_button_new_with_mnemonic_from_widget
 gtk_radio_button_set_group
+gtk_radio_button_set_value
 #endif
 #endif
 
diff --git a/gtk/gtkradiobutton.c b/gtk/gtkradiobutton.c
index d2a68a0..c458aaf 100644
--- a/gtk/gtkradiobutton.c
+++ b/gtk/gtkradiobutton.c
@@ -855,5 +855,36 @@ gtk_radio_button_set_value (GtkRadioButton *radio_button,
     }
 }
 
+/**
+ * gtk_radio_button_get_current_value:
+ * @radio_button: a #GtkRadioButton
+ *
+ * Returns the value of the currently selected radio button inside
+ * the same group of @radio_button.
+ *
+ * Return value: the value set with gtk_radio_button_set_value() or
+ *   the current position inside the group.
+ *
+ * Since: 2.14
+ */
+gint
+gtk_radio_button_get_current_value (GtkRadioButton *radio_button)
+{
+  GSList *l;
+
+  g_return_val_if_fail (GTK_IS_RADIO_BUTTON (radio_button),
+                        GTK_RADIO_BUTTON_VALUE_UNSET);
+
+  for (l = radio_button->group; l; l = l->next)
+    {
+      GtkToggleButton *button = GTK_TOGGLE_BUTTON (l->data);
+
+      if (gtk_toggle_button_get_active (button))
+        return gtk_radio_button_get_value (GTK_RADIO_BUTTON (l->data));
+    }
+
+  return GTK_RADIO_BUTTON_VALUE_UNSET;
+}
+
 #define __GTK_RADIO_BUTTON_C__
 #include "gtkaliasdef.c"
diff --git a/gtk/gtkradiobutton.h b/gtk/gtkradiobutton.h
index 53bb88c..9ebdff1 100644
--- a/gtk/gtkradiobutton.h
+++ b/gtk/gtkradiobutton.h
@@ -83,6 +83,7 @@ void       gtk_radio_button_set_group                     (GtkRadioButton *radio
 gint       gtk_radio_button_get_value                     (GtkRadioButton *radio_button);
 void       gtk_radio_button_set_value                     (GtkRadioButton *radio_button,
                                                            gint            value);
+gint       gtk_radio_button_get_current_value             (GtkRadioButton *radio_button);
 
 #ifndef GTK_DISABLE_DEPRECATED
 #define gtk_radio_button_group gtk_radio_button_get_group
