diff -rup gtkfilechooserdialog.save.c gtkfilechooserdialog.c
--- gtkfilechooserdialog.save.c	2008-10-16 21:06:20 -0700
+++ gtkfilechooserdialog.c	2008-11-19 23:48:50 -0800
@@ -257,6 +257,8 @@ gtk_file_chooser_dialog_constructor (GTy
 {
   GtkFileChooserDialogPrivate *priv;
   GObject *object;
+  gint width, height;
+  gint default_width, default_height;
 
   object = G_OBJECT_CLASS (gtk_file_chooser_dialog_parent_class)->constructor (type,
 									       n_construct_properties,
@@ -287,6 +289,10 @@ gtk_file_chooser_dialog_constructor (GTy
   _gtk_file_chooser_set_delegate (GTK_FILE_CHOOSER (object),
 				  GTK_FILE_CHOOSER (priv->widget));
 
+  /* We need to pre-set the window size here to ensure that centering works properly
+   * with GTK_WIN_POS_CENTER or GTK_WIN_POS_CENTER_ON_PARENT. This achieves that: */
+  file_chooser_widget_default_size_changed (priv->widget, GTK_FILE_CHOOSER_DIALOG (object));
+
   gtk_widget_pop_composite_child ();
 
   return object;
