--- gnome-terminal-3.8.4/src/terminal-screen.c	2013-07-07 12:54:03.000000000 +0200
+++ b/src/terminal-screen.c	2014-01-18 19:26:48.068733042 +0100
@@ -981,6 +981,8 @@
   vte_terminal_set_colors_rgba (VTE_TERMINAL (screen), &fg, &bg,
                                 colors, n_colors);
   vte_terminal_set_color_bold_rgba (VTE_TERMINAL (screen), &bold);
+  vte_terminal_set_background_saturation (VTE_TERMINAL (screen), 1.0 - bg.alpha); /* normal color */
+  vte_terminal_set_opacity (VTE_TERMINAL (screen), bg.alpha * 0xffff);
   g_free (colors);
 }
 
--- gnome-terminal-3.8.4/src/terminal-window.c	2013-07-07 12:54:03.000000000 +0200
+++ b/src/terminal-window.c	2014-01-18 19:26:52.944515167 +0100
@@ -1439,16 +1439,21 @@
 {
   TerminalWindow *window = TERMINAL_WINDOW (widget);
   TerminalWindowPrivate *priv = window->priv;
+  
+  GdkScreen *screen;
   GtkAllocation widget_allocation;
 
   gtk_widget_get_allocation (widget, &widget_allocation);
+  screen = gtk_widget_get_screen (GTK_WIDGET (window));
+      /* Set RGBA visual if possible so VTE can use real transparency */
+      gtk_widget_set_visual (GTK_WIDGET (widget), gdk_screen_get_rgba_visual (screen));
 
   _terminal_debug_print (TERMINAL_DEBUG_GEOMETRY,
                          "[window %p] realize, size %d : %d at (%d, %d)\n",
                          widget,
                          widget_allocation.width, widget_allocation.height,
                          widget_allocation.x, widget_allocation.y);
-
+                         
   GTK_WIDGET_CLASS (terminal_window_parent_class)->realize (widget);
 
   /* Need to do this now since this requires the window to be realized */

