diff --git a/kpresenter/part/KPrView.cpp b/kpresenter/part/KPrView.cpp
index 0596970..f729bfd 100644
--- a/kpresenter/part/KPrView.cpp
+++ b/kpresenter/part/KPrView.cpp
@@ -100,7 +100,9 @@ KPrView::KPrView( KPrDocument *document, QWidget *parent )
     KoPACanvas * canvas = dynamic_cast<KoPACanvas*>(kopaCanvas());
     if (canvas) {
         m_slidesSorterMode = new KPrViewModeSlidesSorter(this, canvas);
+        m_slidesSorterMode->setNormalMode(m_normalMode);
     }
+
 }
 
 KPrView::~KPrView()
@@ -276,6 +278,27 @@ this );
     m_actionBlackPresentation->setEnabled(false);
 }
 
+void KPrView::showEvent(QShowEvent *e)
+{
+    KoView::showEvent(e);
+    QTimer::singleShot(0, this, SLOT(updateStatusBarAction()));
+    QTimer::singleShot(0, this, SLOT(updateViewModeAction()));
+}
+
+void KPrView::updateStatusBarAction()
+{
+    KToggleAction *action = (KToggleAction*) actionCollection()->action("showStatusBar");
+    if (action && statusBar())
+        action->setChecked(! statusBar()->isHidden());
+}
+
+void KPrView::updateViewModeAction()
+{
+    KAction *action = (KAction*) actionCollection()->action("view_normal");
+    if (action)
+        action-> setChecked(viewMode() == m_normalMode);
+}
+
 void KPrView::startPresentation()
 {
     m_actionDrawOnPresentation->setEnabled(true);
diff --git a/kpresenter/part/KPrView.h b/kpresenter/part/KPrView.h
index a59bf08..bea7e2a 100644
--- a/kpresenter/part/KPrView.h
+++ b/kpresenter/part/KPrView.h
@@ -85,6 +85,8 @@ public slots:
 protected:
     void initGUI();
     void initActions();
+    /// reimplemented method from superclass
+    virtual void showEvent(QShowEvent *event);
 
 protected slots:
     void createAnimation();
@@ -100,6 +102,8 @@ protected slots:
     void highlightPresentation();
     void blackPresentation();
     void showStatusBar(bool toggled);
+    void updateStatusBarAction();
+    void updateViewModeAction();
 
 private:
     KActionMenu *m_actionStartPresentation;
diff --git a/kpresenter/part/KPrViewModeSlidesSorter.cpp b/kpresenter/part/KPrViewModeSlidesSorter.cpp
index ff1d737..fb7b9fb 100644
--- a/kpresenter/part/KPrViewModeSlidesSorter.cpp
+++ b/kpresenter/part/KPrViewModeSlidesSorter.cpp
@@ -40,8 +40,8 @@
 #include <KoPAPageBase.h>
 #include <KoPAMasterPage.h>
 #include <KoPAView.h>
-
 #include <KoPAPageMoveCommand.h>
+#include <KPrView.h>
 
 #include <KDebug>
 
@@ -100,6 +100,15 @@ void KPrViewModeSlidesSorter::KPrSlidesSorter::paintEvent( QPaintEvent* event )
 
 }
 
+void KPrViewModeSlidesSorter::KPrSlidesSorter::mouseDoubleClickEvent(QMouseEvent *event)
+{
+    //Q_UNUSED(event);
+    //Q_UNUSED(point);
+    event->accept();
+    QListWidget::mouseDoubleClickEvent(event);
+    m_viewModeSlidesSorter->activateSavedViewMode();
+}
+
 void KPrViewModeSlidesSorter::paintEvent( KoPACanvas * canvas, QPaintEvent* event )
 {
     Q_UNUSED(canvas);
@@ -119,6 +128,7 @@ void KPrViewModeSlidesSorter::mousePressEvent(QMouseEvent *event, const QPointF
     Q_UNUSED(point);
 }
 
+
 void KPrViewModeSlidesSorter::mouseDoubleClickEvent(QMouseEvent *event, const QPointF &point)
 {
     Q_UNUSED(event);
@@ -165,6 +175,8 @@ void KPrViewModeSlidesSorter::activate(KoPAViewMode *previousViewMode)
     m_slidesSorter->setFocus(Qt::ActiveWindowFocusReason);
 }
 
+
+
 void KPrViewModeSlidesSorter::deactivate()
 {
     m_slidesSorter->hide();
@@ -177,6 +189,8 @@ void KPrViewModeSlidesSorter::deactivate()
     if (view) {
         view->show();
     }
+    m_view->setActivePage(m_view->kopaDocument()->pageByIndex(m_slidesSorter->row(m_slidesSorter->currentItem()), false));
+
 }
 
 void KPrViewModeSlidesSorter::updateActivePage( KoPAPageBase *page )
@@ -286,13 +300,17 @@ void KPrViewModeSlidesSorter::populate()
 
     QListWidgetItem * item = 0;
 
+    KoPAView *view = dynamic_cast<KoPAView *>(m_view);
+
     //Load the available slides
     foreach( KoPAPageBase* page, m_view->kopaDocument()->pages() )
-    {
+    {          
         currentPage++;
         QString slideName = page->name().isEmpty() ? i18n("Slide %1", currentPage) : page->name();
         item = new QListWidgetItem( QIcon( page->thumbnail( m_iconSize ) ), slideName, m_slidesSorter );
         item->setFlags((item->flags() | Qt::ItemIsDragEnabled ) & ~Qt::ItemIsDropEnabled);
+        if (page == view->activePage())
+            m_slidesSorter->setCurrentItem(item);
     }
     if (item) {
         setItemSize(m_slidesSorter->visualItemRect(item));
@@ -357,3 +375,13 @@ void KPrViewModeSlidesSorter::setLastItemNumber(int number)
     m_lastItemNumber = number;
 }
 
+void KPrViewModeSlidesSorter::setNormalMode(KoPAViewMode *normalViewMode)
+{
+    m_normalViewMode = normalViewMode;
+}
+
+void KPrViewModeSlidesSorter::activateSavedViewMode()
+{
+    m_view->setViewMode(m_normalViewMode );
+}
+
diff --git a/kpresenter/part/KPrViewModeSlidesSorter.h b/kpresenter/part/KPrViewModeSlidesSorter.h
index 724ee1d..223fe84 100644
--- a/kpresenter/part/KPrViewModeSlidesSorter.h
+++ b/kpresenter/part/KPrViewModeSlidesSorter.h
@@ -52,6 +52,8 @@ public:
     void activate(KoPAViewMode *previousViewMode);
     void deactivate();
 
+    void setNormalMode(KoPAViewMode *normalViewMode);
+
     void updateActivePage( KoPAPageBase *page );
 
     void addShape( KoShape *shape );
@@ -128,11 +130,13 @@ protected:
      */
     void setLastItemNumber(int number);
 
+    void activateSavedViewMode();
+
     /**
      * This class manage the QListWidget itself.
      * Use all the getters and setters of the KPrViewModeSlidesSorter.
      * Most of the functions are Qt overrides to have the wished comportment.
-     */
+     */ 
     class KPrSlidesSorter : public QListWidget {
         public:
             KPrSlidesSorter ( KPrViewModeSlidesSorter * viewModeSlidesSorter, QWidget * parent = 0 )
@@ -153,6 +157,8 @@ protected:
 
             virtual void paintEvent ( QPaintEvent * ev);
 
+            virtual void mouseDoubleClickEvent(QMouseEvent *event);
+
             virtual void startDrag ( Qt::DropActions supportedActions );
 
             virtual void dropEvent(QDropEvent* ev);
@@ -170,6 +176,8 @@ protected:
             int m_movingPageNumber;
     };
 
+
+
 private:
     KPrSlidesSorter * m_slidesSorter;
     QSize m_iconSize;
@@ -178,6 +186,7 @@ private:
     const int m_pageCount;
     bool m_dragingFlag;
     int m_lastItemNumber;
+    KoPAViewMode * m_normalViewMode;
 };
 
 #endif // KPRVIEWMODESLIDESSORTER_H
