diff --git a/xs/GtkAboutDialog.xs b/xs/GtkAboutDialog.xs
index f1f54f0..488c4c8 100644
--- a/xs/GtkAboutDialog.xs
+++ b/xs/GtkAboutDialog.xs
@@ -1,5 +1,5 @@
-/*
- * Copyright (c) 2004-2005 by the gtk2-perl team (see the file AUTHORS)
+ /*
+ * Copyright (c) 2004-2005, 2010 by the gtk2-perl team (see the file AUTHORS)
  *
  * Licensed under the LGPL, see LICENSE file for more information.
  *
@@ -70,7 +70,9 @@ This is a convenience function for showing an application's about box. The
 constructed dialog is associated with the parent window and reused for
 future invocations of this function.
 
-The dialog is shown nonmodally, and will be hidden by any response.
+The dialog is created on the same screen as C<$parent> (if given), or
+pass a C<screen> property to override that.  The dialog is shown
+nonmodally, and hidden by any response.
 =cut
 void gtk_show_about_dialog (class, GtkWindow_ornull * parent, first_property_name, ...);
     PREINIT:
@@ -89,6 +91,14 @@ void gtk_show_about_dialog (class, GtkWindow_ornull * parent, first_property_nam
 		g_object_ref (dialog);
 		gtk_object_sink (GTK_OBJECT (dialog));
 
+		/* Default screen from parent, and can be overridden by
+		   property setting.  This is a bit like the way the parent's
+		   screen is used in a "transient_for" -- but just a one-off
+		   setting here, not following changes to the parent the way
+		   gtk_window_set_transient_for() rigs up.  */
+		gtk_window_set_screen (GTK_WINDOW(dialog),
+				       gtk_window_get_screen (parent));
+
 		g_signal_connect (dialog, "delete_event",
 				  G_CALLBACK (gtk_widget_hide_on_delete), NULL);
 
