Index: xfce-panel-external-item.c
===================================================================
--- xfce-panel-external-item.c	(revision 23252)
+++ xfce-panel-external-item.c	(working copy)
@@ -128,6 +128,32 @@
     iface->configure           = xfce_external_panel_item_configure;
 }
 
+static gboolean
+xfce_external_panel_item_expose(GtkWidget *widget, GdkEventExpose *event)
+{
+    cairo_t *cr;
+
+	cr = gdk_cairo_create (widget->window);	
+
+	cairo_rectangle (cr, event->area.x,
+			     event->area.y,
+			     event->area.width,
+			     event->area.height);
+        cairo_clip (cr);
+
+	/* fully transparent */
+	cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
+
+	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+	cairo_paint (cr);
+		
+	cairo_destroy (cr);
+
+    GTK_WIDGET_CLASS(xfce_external_panel_item_parent_class)->expose_event(widget, event);
+
+    return FALSE;
+}
+
 static void
 xfce_external_panel_item_class_init (XfceExternalPanelItemClass * klass)
 {
@@ -141,6 +167,8 @@
 
     object_class->finalize = xfce_external_panel_item_finalize;
 
+    widget_class->expose_event = xfce_external_panel_item_expose;
+
     widget_class->button_press_event = 
         xfce_external_panel_item_button_press_event;
 }
@@ -159,6 +187,8 @@
     priv->screen_position = XFCE_SCREEN_POSITION_NONE;
     priv->expand          = FALSE;
     priv->to_be_removed   = FALSE;
+
+    gtk_widget_set_app_paintable(GTK_WIDGET(item), TRUE);
 }
 
 /* GObject */
Index: xfce-panel-external-plugin.c
===================================================================
--- xfce-panel-external-plugin.c	(revision 23252)
+++ xfce-panel-external-plugin.c	(working copy)
@@ -174,18 +174,47 @@
     iface->set_panel_hidden = xfce_external_panel_plugin_set_panel_hidden;
 }
 
+static gboolean
+xfce_external_panel_plugin_expose(GtkWidget *widget, GdkEventExpose *event)
+{
+    cairo_t *cr;
+
+	cr = gdk_cairo_create (widget->window);	
+
+	cairo_rectangle (cr, event->area.x,
+			     event->area.y,
+			     event->area.width,
+			     event->area.height);
+        cairo_clip (cr);
+
+	/* fully transparent */
+	cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
+
+	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+	cairo_paint (cr);
+		
+	cairo_destroy (cr);
+
+    GTK_WIDGET_CLASS(xfce_external_panel_plugin_parent_class)->expose_event(widget, event);
+
+    return FALSE;
+}
+
 static void
 xfce_external_panel_plugin_class_init (XfceExternalPanelPluginClass * klass)
 {
     GObjectClass *object_class;
+    GtkWidgetClass *widget_class;
 
     g_type_class_add_private (klass, sizeof (XfceExternalPanelPluginPrivate));
 
     object_class = (GObjectClass *) klass;
+    widget_class = (GtkWidgetClass *) klass;
 
     object_class->finalize     = xfce_external_panel_plugin_finalize;
     object_class->get_property = xfce_external_panel_plugin_get_property;
     object_class->set_property = xfce_external_panel_plugin_set_property;
+    widget_class->expose_event = xfce_external_panel_plugin_expose;
 
     /* properties */
 
@@ -219,6 +248,27 @@
     priv->construct       = NULL;
     priv->socket_id       = 0;
     priv->expand          = FALSE;
+
+    {
+	GtkWidget *widget;
+	GdkScreen    *screen;
+	GdkColormap  *colormap;
+
+	widget = GTK_WIDGET (plugin);
+
+	gtk_widget_set_app_paintable(widget, TRUE);
+
+	screen = gtk_widget_get_screen (widget);
+	colormap = gdk_screen_get_rgba_colormap (screen);
+
+	if (!colormap)
+	{
+		colormap = gdk_screen_get_rgb_colormap (screen);
+		g_debug (" No Alpha support \n");
+	}
+
+	gtk_widget_set_colormap (widget, colormap);
+    }
 }
 
 /* GObject */
Index: xfce-panel-window.c
===================================================================
--- xfce-panel-window.c	(revision 23252)
+++ xfce-panel-window.c	(working copy)
@@ -353,6 +353,26 @@
     priv->right_border      = TRUE;
     priv->movable          = TRUE;
 
+    {
+	GtkWidget *widget;
+	GdkScreen    *screen;
+	GdkColormap  *colormap;
+
+	widget = GTK_WIDGET (panel_window);
+
+	gtk_widget_set_app_paintable(widget, TRUE);
+
+	screen = gtk_widget_get_screen (widget);
+	colormap = gdk_screen_get_rgba_colormap (screen);
+
+	if (!colormap)
+	{
+		colormap = gdk_screen_get_rgb_colormap (screen);
+		g_debug (" No Alpha support \n");
+	}
+
+	gtk_widget_set_colormap (widget, colormap);
+    }
     gtk_widget_set_events (GTK_WIDGET (panel_window),
                            gtk_widget_get_events (GTK_WIDGET (panel_window))
                            | GDK_BUTTON_MOTION_MASK
@@ -620,12 +640,29 @@
 static gint
 xfce_panel_window_expose (GtkWidget * widget, GdkEventExpose * event)
 {
+	cairo_t      *cr;
     XfcePanelWindow *panel_window = XFCE_PANEL_WINDOW (widget);
     XfcePanelWindowPrivate *priv =
         XFCE_PANEL_WINDOW_GET_PRIVATE (panel_window);
 
     if (GTK_WIDGET_DRAWABLE (widget))
     {
+	cr = gdk_cairo_create (widget->window);
+
+	cairo_rectangle (cr, event->area.x,
+			     event->area.y,
+			     event->area.width,
+			     event->area.height);
+        cairo_clip (cr);
+
+	/* fully transparent */
+	cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
+
+	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+	cairo_paint (cr);
+		
+	cairo_destroy (cr);
+	
         if (GTK_BIN (widget)->child)
         {
             gtk_container_propagate_expose (GTK_CONTAINER (widget),
Index: xfce-panel-internal-plugin.c
===================================================================
--- xfce-panel-internal-plugin.c	(revision 23252)
+++ xfce-panel-internal-plugin.c	(working copy)
@@ -200,10 +200,37 @@
     iface->focus_panel      = xfce_internal_panel_plugin_focus_panel;
 }
 
+static gboolean
+xfce_internal_panel_plugin_expose(GtkWidget *widget, GdkEventExpose *event)
+{
+    cairo_t *cr;
+
+	cr = gdk_cairo_create (widget->window);	
+
+	cairo_rectangle (cr, event->area.x,
+			     event->area.y,
+			     event->area.width,
+			     event->area.height);
+        cairo_clip (cr);
+
+	/* fully transparent */
+	cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
+
+	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+	cairo_paint (cr);
+		
+	cairo_destroy (cr);
+
+    GTK_WIDGET_CLASS(xfce_internal_panel_plugin_parent_class)->expose_event(widget, event);
+
+    return FALSE;
+}
+
 static void
 xfce_internal_panel_plugin_class_init (XfceInternalPanelPluginClass * klass)
 {
     GObjectClass *object_class;
+    GtkWidgetClass *widget_class;
 
     g_type_class_add_private (klass, sizeof (XfceInternalPanelPluginPrivate));
 
@@ -213,6 +240,10 @@
     object_class->get_property = xfce_internal_panel_plugin_get_property;
     object_class->set_property = xfce_internal_panel_plugin_set_property;
 
+    widget_class = (GtkWidgetClass *) klass;
+
+    widget_class->expose_event = xfce_internal_panel_plugin_expose;
+
     /* properties */
 
     g_object_class_override_property (object_class, PROP_NAME, "name");
@@ -243,6 +274,8 @@
     priv->size            = 0;
     priv->screen_position = XFCE_SCREEN_POSITION_NONE;
     priv->expand          = FALSE;
+
+    gtk_widget_set_app_paintable(GTK_WIDGET(plugin), TRUE);
 }
 
 /* GObject */
