diff -ur clearlooks.orig/src/clearlooks_draw.c clearlooks/src/clearlooks_draw.c
--- clearlooks.orig/src/clearlooks_draw.c	2005-10-30 16:35:01.000000000 +0100
+++ clearlooks/src/clearlooks_draw.c	2005-10-31 20:50:22.000000000 +0100
@@ -475,6 +475,31 @@
 	cairo_stroke (cr);
 }
 
+
+static void
+clearlooks_scale_draw_gradient_alpha (cairo_t *cr,
+                                const CairoColor *c1,
+                                const CairoColor *c2,
+                                const CairoColor *c3,
+                                int x, int y, int width, int height,
+                                boolean horizontal, 
+                                const double alpha)
+{
+	cairo_pattern_t *pattern;
+
+	pattern = cairo_pattern_create_linear (0, 0, horizontal ? 0 :  width, horizontal ? height : 0);
+	cairo_pattern_add_color_stop_rgba (pattern, 0.0, c1->r, c1->g, c1->b,alpha);
+	cairo_pattern_add_color_stop_rgba (pattern, 1.0, c2->r, c2->g, c2->b,alpha);
+
+	cairo_rectangle (cr, x+0.5, y+0.5, width-1, height-1);	
+	cairo_set_source (cr, pattern);
+	cairo_fill (cr);
+	
+	cairo_rectangle (cr, x, y, width, height);	
+	cairo_set_source_rgb (cr, c3->r, c3->g, c3->b);
+	cairo_stroke (cr);
+}
+
 #define TROUGH_SIZE 6
 void
 clearlooks_draw_scale_trough (cairo_t *cr,
@@ -485,7 +510,7 @@
 {
 	int     fill_x, fill_y, fill_width, fill_height; /* Fill x,y,w,h */
 	int     trough_width, trough_height;
-	double  translate_x, translate_y;
+	double  translate_x, translate_y,tran;
 	int     fill_size = slider->fill_size;
 
 	if (slider->horizontal)
@@ -523,21 +548,28 @@
 
 	cairo_set_line_width (cr, 1.0);
 	cairo_translate (cr, translate_x, translate_y);
-	
 	clearlooks_draw_inset (cr, trough_width+2, trough_height+2, 0, 0);
 	
 	cairo_translate (cr, 1, 1);
-	clearlooks_scale_draw_gradient (cr, &colors->shade[3], /* top */
-	                                    &colors->shade[2], /* bottom */
-	                                    &colors->shade[6], /* border */
+
+	clearlooks_scale_draw_gradient (cr, &colors->shade[3], 
+	                                    &colors->shade[2], 
+	                                    &colors->shade[6],
 	                                    0, 0, trough_width, trough_height,
 	                                    slider->horizontal);
 	
-	clearlooks_scale_draw_gradient (cr, &colors->spot[1], /* top    */
-	                                    &colors->spot[0], /* bottom */
-	                                    &colors->spot[2], /* border */
+	//calculate transparency
+	if (slider->horizontal)
+		tran = (float)fill_width/width;
+	else
+		tran = (float)fill_height/height;
+	if (tran<0.2)
+		tran = 0.2;
+	clearlooks_scale_draw_gradient_alpha (cr, &colors->spot[1],
+	                                    &colors->spot[0],
+	                                    &colors->spot[2],
 	                                    fill_x, fill_y, fill_width, fill_height,
-	                                    slider->horizontal);
+	                                    slider->horizontal,tran);
 }
 
 void
@@ -565,7 +597,7 @@
 	clearlooks_draw_shadow (cr, width-1, height-1);
 	
 	clearlooks_rounded_rectectangle (cr, 0.5, 0.5, width-2, height-2, 3.0, params->corners);
-
+	
 	/* Fill the damn thing */
 	cairo_set_source_rgb (cr, colors->bg[params->state_type].r,
 	                          colors->bg[params->state_type].g,
@@ -590,6 +622,7 @@
 	cairo_fill (cr);
 	
 	/* Set the clip */
+
 	cairo_rectangle (cr, 1.5, 1.5, 5, height-4);
 	cairo_rectangle (cr, width-7.5, 1.5, 5 , height-4);
 	cairo_clip (cr);
@@ -600,7 +633,6 @@
 	clearlooks_rounded_rectectangle (cr, 0.5, 0.5, width-2, height-2, 3.0, params->corners);
 	cairo_set_source_rgba (cr, 1, 1, 1, 0.5);
 	cairo_fill (cr);
-	
 	cairo_reset_clip (cr);
 
 	/* Draw the border */
@@ -680,11 +712,12 @@
                                   const ClearlooksColors *colors,
                                   const WidgetParameters *params,
                                   const ProgressBarParameters *progressbar,
-                                  int x, int y, int width, int height)
+                                  int x, int y, int width, int height, gint offset)
 {
 	boolean          is_horizontal = progressbar->orientation < 2;
 	double           tile_pos = 0;
 	double           stroke_width;
+	 int			x_step;
 	cairo_pattern_t *pattern;
 	CairoColor       shade1;
 	
@@ -712,7 +745,8 @@
 	}
 	
 	stroke_width = height*2;
-
+	x_step = (((float)stroke_width/10)*offset);
+	
 	cairo_set_line_width (cr, 1.0);
 	
 	cairo_save (cr);
@@ -735,13 +769,13 @@
 	cairo_fill (cr);
 	
 	/* Draw strokes */
-	while (tile_pos <= width)
+	while (tile_pos <= width+x_step)
 	{
-		cairo_move_to (cr, stroke_width/2, 0);
-		cairo_line_to (cr, stroke_width,   0);
-		cairo_line_to (cr, stroke_width/2, height);
-		cairo_line_to (cr, 0, height);
-		
+		cairo_move_to (cr, stroke_width/2-x_step, 0);
+		cairo_line_to (cr, stroke_width-x_step,   0);
+		cairo_line_to (cr, stroke_width/2-x_step, height);
+		cairo_line_to (cr, -x_step, height);
+
 		cairo_translate (cr, stroke_width, 0);
 		tile_pos += stroke_width;
 	}
@@ -765,7 +799,7 @@
 	cairo_set_source (cr, pattern);
 	cairo_rectangle (cr, 0, 0, 3, height);
 	cairo_fill (cr);
-	cairo_pattern_destroy (pattern);	
+	cairo_pattern_destroy (pattern);
 	
 	/* End of bar line */
 	cairo_move_to (cr, -0.5, 0);
diff -ur clearlooks.orig/src/clearlooks_draw.h clearlooks/src/clearlooks_draw.h
--- clearlooks.orig/src/clearlooks_draw.h	2005-09-12 19:31:09.000000000 +0200
+++ clearlooks/src/clearlooks_draw.h	2005-10-31 20:47:57.000000000 +0100
@@ -29,7 +29,7 @@
                                        const ClearlooksColors      *colors,
                                        const WidgetParameters      *widget,
                                        const ProgressBarParameters *progressbar,
-                                       int x, int y, int width, int height);
+                                       int x, int y, int width, int height, gint offset);
 
 void clearlooks_draw_slider_button    (cairo_t *cr,
                                        const ClearlooksColors     *colors,
diff -ur clearlooks.orig/src/clearlooks_style.c clearlooks/src/clearlooks_style.c
--- clearlooks.orig/src/clearlooks_style.c	2005-10-30 16:35:01.000000000 +0100
+++ clearlooks/src/clearlooks_style.c	2005-11-01 21:19:48.000000000 +0100
@@ -32,6 +32,10 @@
                      gint            width, \
                      gint            height
 
+static GList *progressbars = NULL;
+static gint8 pboffset = 10;
+static int timer_id = 0;
+
 static GtkStyleClass *parent_class;
 
 static cairo_t *
@@ -50,6 +54,63 @@
     return cr;
 }
 
+static void cl_progressbar_remove (gpointer data)
+{
+        if (g_list_find (progressbars, data) == NULL)
+                return;
+
+        progressbars = g_list_remove (progressbars, data);
+        g_object_unref (data);
+
+        if (g_list_first(progressbars) == NULL) {
+                g_source_remove(timer_id);
+                timer_id = 0;
+        }
+}
+
+static void update_progressbar (gpointer data, gpointer user_data)
+{
+        gfloat fraction;
+
+        if (data == NULL)
+                return;
+
+        fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (data));
+
+        /* update only if not filled */
+        if (fraction < 1.0)
+                gtk_widget_queue_resize ((GtkWidget*)data);
+
+        if (fraction >= 1.0 || GTK_PROGRESS (data)->activity_mode)
+                cl_progressbar_remove (data);
+}
+
+static gboolean timer_func (gpointer data)
+{
+        g_list_foreach (progressbars, update_progressbar, NULL);
+        if (--pboffset < 0) pboffset = 9;
+        return (g_list_first(progressbars) != NULL);
+}
+
+static gboolean cl_progressbar_known(gconstpointer data)
+{
+        return (g_list_find (progressbars, data) != NULL);
+}
+
+static void cl_progressbar_add (gpointer data)
+{
+        if (!GTK_IS_PROGRESS_BAR (data))
+                return;
+
+        progressbars = g_list_append (progressbars, data);
+
+        g_object_ref (data);
+        g_signal_connect ((GObject*)data, "unrealize", G_CALLBACK (cl_progressbar_remove), data);
+
+        if (timer_id == 0)
+                timer_id = g_timeout_add (100, timer_func, NULL);
+}
+
 static void
 clearlooks_set_widget_parameters (const GtkWidget      *widget,
                                   const GtkStyle       *style,
@@ -573,6 +634,15 @@
 		WidgetParameters      params;
 		ProgressBarParameters progressbar;
 		
+		gboolean activity_mode = GTK_PROGRESS (widget)->activity_mode;
+		
+#ifdef HAVE_ANIMATION
+		 if (!activity_mode && gtk_progress_bar_get_fraction (widget) != 1.0 &&
+                        !cl_progressbar_known((gconstpointer)widget))
+                {
+                        cl_progressbar_add ((gpointer)widget);
+                }
+#endif		
 		clearlooks_set_widget_parameters (widget, style, state_type, &params);
 
 		if (widget && GTK_IS_PROGRESS_BAR (widget))
@@ -583,7 +653,7 @@
 		cairo_reset_clip (cr);
 				
 		clearlooks_draw_progressbar_fill (cr, colors, &params, &progressbar,
-		                                  x, y, width, height);
+		                                  x, y, width, height, pboffset);
 		
 	}
 	else if (DETAIL ("hscale") || DETAIL ("vscale"))
