Index: src/picture_viewer.c
===================================================================
--- src/picture_viewer.c	(revision 3381)
+++ src/picture_viewer.c	(working copy)
@@ -913,26 +913,49 @@
 {
     GtkWidget *widget = GTK_WIDGET(viewer);
 
+    RsttoNavigatorEntry *entry = rstto_navigator_get_file(viewer->priv->navigator);
+
     if (viewer->priv->src_pixbuf)
     {
         gdk_pixbuf_unref(viewer->priv->src_pixbuf);
         viewer->priv->src_pixbuf = NULL;
     }
-    if (viewer->priv->iter)
+
+    if (entry)
     {
-        viewer->priv->src_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(viewer->priv->iter);
-        viewer->priv->src_pixbuf = gdk_pixbuf_copy(viewer->priv->src_pixbuf);
-    }
-    else
-    {
-        if (viewer->priv->loader)
+        GdkPixbuf *pixbuf = NULL;
+
+        if (viewer->priv->iter)
         {
-            viewer->priv->src_pixbuf = gdk_pixbuf_loader_get_pixbuf(viewer->priv->loader);
-            if (viewer->priv->src_pixbuf)
+            pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(viewer->priv->iter);
+        }
+        else
+        {
+            if (viewer->priv->loader)
             {
-                gdk_pixbuf_ref(viewer->priv->src_pixbuf);
+                pixbuf = gdk_pixbuf_loader_get_pixbuf(viewer->priv->loader);
             }
         }
+
+       
+        if (pixbuf != NULL)
+        {
+            viewer->priv->src_pixbuf = gdk_pixbuf_rotate_simple(pixbuf, rstto_navigator_entry_get_rotation(entry));
+            if (rstto_navigator_entry_get_flip(entry, FALSE))
+            {
+                pixbuf = viewer->priv->src_pixbuf;
+                viewer->priv->src_pixbuf = gdk_pixbuf_flip(pixbuf, FALSE);
+                gdk_pixbuf_unref(pixbuf);
+            }
+
+            if (rstto_navigator_entry_get_flip(entry, TRUE))
+            {
+                pixbuf = viewer->priv->src_pixbuf;
+                viewer->priv->src_pixbuf = gdk_pixbuf_flip(pixbuf, TRUE);
+                gdk_pixbuf_unref(pixbuf);
+            }
+        }
+        
     }
 
     rstto_picture_viewer_refresh(viewer);
