diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index 9535823..d73e363 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -80,6 +80,8 @@ static void gtk_scale_get_range_border (GtkRange      *range,
 static void gtk_scale_finalize         (GObject       *object);
 static void gtk_scale_screen_changed   (GtkWidget     *widget,
                                         GdkScreen     *old_screen);
+static void gtk_scale_size_request     (GtkWidget      *widget,
+                                        GtkRequisition *requisition);
 
 G_DEFINE_ABSTRACT_TYPE (GtkScale, gtk_scale, GTK_TYPE_RANGE)
 
@@ -123,6 +125,7 @@ gtk_scale_class_init (GtkScaleClass *class)
 
   widget_class->style_set = gtk_scale_style_set;
   widget_class->screen_changed = gtk_scale_screen_changed;
+  widget_class->size_request = gtk_scale_size_request;
 
   range_class->get_range_border = gtk_scale_get_range_border;
   
@@ -180,7 +183,39 @@ gtk_scale_class_init (GtkScaleClass *class)
 							     G_MAXINT,
 							     2,
 							     GTK_PARAM_READABLE));
-  
+
+  /**
+   * GtkScale:minimum-width:
+   *
+   * The minimum width of a horizontal scale.
+   *
+   * Since: 2.16
+   */
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_int ("minimum-width",
+                                                             P_("Minimum Width"),
+                                                             P_("The minimum width of the scale"),
+                                                             0,
+                                                             G_MAXINT,
+                                                             0,
+                                                             GTK_PARAM_READABLE));
+
+  /**
+   * GtkScale:minimum-height:
+   *
+   * The minimum height of a vertical scale.
+   *
+   * Since: 2.16
+   */
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_int ("minimum-height",
+                                                             P_("Minimum Height"),
+                                                             P_("The minimum height of the scale"),
+                                                             0,
+                                                             G_MAXINT,
+                                                             0,
+                                                             GTK_PARAM_READABLE));
+
   /* All bindings (even arrow keys) are on both h/v scale, because
    * blind users etc. don't care about scale orientation.
    */
@@ -590,6 +625,26 @@ gtk_scale_screen_changed (GtkWidget *widget,
   _gtk_scale_clear_layout (GTK_SCALE (widget));
 }
 
+static void
+gtk_scale_size_request (GtkWidget      *widget,
+                        GtkRequisition *requisition)
+{
+  gint minimum;
+
+  GTK_WIDGET_CLASS (gtk_scale_parent_class)->size_request (widget, requisition);
+
+  if (!g_strcmp0 (G_OBJECT_TYPE_NAME (widget), "GtkHScale"))
+    {
+      gtk_widget_style_get (widget, "minimum-width", &minimum, NULL);
+      requisition->width = MAX (minimum, requisition->width);
+    }
+  else
+    {
+      gtk_widget_style_get (widget, "minimum-height", &minimum, NULL);
+      requisition->height = MAX (minimum, requisition->height);
+    }
+}
+
 /**
  * _gtk_scale_format_value:
  * @scale: a #GtkScale
