diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index aa1a5ad..f8b58ca 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -842,6 +842,20 @@ gtk_notebook_class_init (GtkNotebookClass *class)
                                                              G_MAXINT,
                                                              0,
                                                              GTK_PARAM_READABLE));
+  /**
+   * GtkNotebook:center-tabs:
+   *
+   * The "center-tabs" property defines whether the tabs are aligned
+   * in the center or not.
+   *
+   * Since: 2.18
+   */
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_boolean ("center-tabs",
+                                                                 P_("Tabs alignment"),
+                                                                 P_("Tabs alignment inside the available area"),
+                                                                 FALSE,
+                                                                 GTK_PARAM_READABLE));
 
   notebook_signals[SWITCH_PAGE] =
     g_signal_new (I_("switch-page"),
@@ -4831,6 +4845,8 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
   gint arrow_spacing;
   gint scroll_arrow_hlength;
   gint scroll_arrow_vlength;
+  gint remaining_space, padding;
+  gboolean tabs_centered;
 
   widget = GTK_WIDGET (notebook);
   priv = GTK_NOTEBOOK_GET_PRIVATE (notebook);
@@ -4840,6 +4856,8 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
                         "arrow-spacing", &arrow_spacing,
                         "scroll-arrow-hlength", &scroll_arrow_hlength,
                         "scroll-arrow-vlength", &scroll_arrow_vlength,
+                        "center-tabs", &tabs_centered,
+                        "tab-overlap", &tab_overlap,
                         NULL);
 
   switch (tab_pos)
@@ -4884,8 +4902,6 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
     *show_arrows = FALSE;
   else
     {
-      gtk_widget_style_get (widget, "tab-overlap", &tab_overlap, NULL);
-
       switch (tab_pos)
 	{
 	case GTK_POS_TOP:
@@ -4948,6 +4964,15 @@ gtk_notebook_tab_space (GtkNotebook *notebook,
 	  break;
 	}
     }
+
+  if (tabs_centered && !*show_arrows)
+    {
+      remaining_space = *max - *min - tab_overlap - *tab_space;
+      padding = (remaining_space / 2);
+
+      *min += padding;
+      *max -= padding;
+    }
 }
 
 static void
