--- gtk+-3.12.1/gtk/gtkradiobutton.c
+++ gtk+-3.12.1/gtk/gtkradiobutton.c
@@ -943,6 +943,28 @@
 
   gtk_render_option (context, cr,
                      x, y, indicator_size, indicator_size);
 
   gtk_style_context_restore (context);
 }
+
+GtkWidget*
+gtk_radio_button_get_active_widget(GtkRadioButton *radio_button)
+{
+  g_return_if_fail (GTK_IS_RADIO_BUTTON (radio_button));
+
+  GSList *tmp_list = radio_button->priv->group;
+  GtkToggleButton *tmp_button = NULL;
+
+  while (tmp_list)
+    {
+      tmp_button = tmp_list->data;
+      tmp_list = tmp_list->next;
+
+      if (gtk_toggle_button_get_active(tmp_button))
+          break;
+
+      tmp_button = NULL;
+    }
+
+  return GTK_WIDGET(tmp_button);
+}

--- gtk+-3.12.1/gtk/gtkradiobutton.h
+++ gtk+-3.12.1/gtk/gtkradiobutton.h
@@ -94,9 +94,12 @@
 GDK_AVAILABLE_IN_ALL
 void       gtk_radio_button_set_group                     (GtkRadioButton *radio_button,
                                                            GSList         *group);
 GDK_AVAILABLE_IN_ALL
 void            gtk_radio_button_join_group        (GtkRadioButton        *radio_button,
                                                     GtkRadioButton        *group_source);
+GDK_AVAILABLE_IN_ALL
+GtkWidget* gtk_radio_button_get_active_widget             (GtkRadioButton *radio_button);
+
 G_END_DECLS
 
 #endif /* __GTK_RADIO_BUTTON_H__ */
