b2eeaba8d50f9fcb86b0a3794e04fd9c8840780a
diff --git a/shell/ev-transition-animation.c b/shell/ev-transition-animation.c
index 2a6154d..4182c53 100644
--- a/shell/ev-transition-animation.c
+++ b/shell/ev-transition-animation.c
@@ -564,6 +564,21 @@ ev_transition_animation_uncover (cairo_t               *cr,
 	}
 }
 
+static void
+ev_transition_animation_fade (cairo_t               *cr,
+			      EvTransitionAnimation *animation,
+			      EvTransitionEffect    *effect,
+			      gdouble                progress,
+			      GdkRectangle           page_area)
+{
+	EvTransitionAnimationPriv *priv;
+
+	priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation);
+
+	paint_surface (cr, priv->origin_surface, 0, 0, 0, page_area);
+	paint_surface (cr, priv->dest_surface, 0, 0, progress, page_area);
+}
+
 void
 ev_transition_animation_paint (EvTransitionAnimation *animation,
 			       cairo_t               *cr,
@@ -614,6 +629,9 @@ ev_transition_animation_paint (EvTransitionAnimation *animation,
 	case EV_TRANSITION_EFFECT_UNCOVER:
 		ev_transition_animation_uncover (cr, animation, priv->effect, progress, page_area);
 		break;
+	case EV_TRANSITION_EFFECT_FADE:
+		ev_transition_animation_fade (cr, animation, priv->effect, progress, page_area);
+		break;
 	default:
 		g_warning ("Transition animation not implemented");
 	}
