diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp
index ce08ec8202beade3e631b14e1b7e13965f6a5427..326638fc1bf2cc2bfcdf670caf30e4ef805e53d7 100644
--- a/src/plugins/bookmarks/bookmarkmanager.cpp
+++ b/src/plugins/bookmarks/bookmarkmanager.cpp
@@ -35,6 +35,7 @@
 
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/icore.h>
+#include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/uniqueidmanager.h>
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/session.h>
@@ -227,15 +228,24 @@ BookmarkView::~BookmarkView()
 void BookmarkView::contextMenuEvent(QContextMenuEvent *event)
 {
     QMenu menu;
-    QAction *remove = menu.addAction(tr("&Remove Bookmark"));
-    QAction *removeAll = menu.addAction(tr("Remove all Bookmarks"));
+    QAction *moveUp = menu.addAction(tr("Move Up"));
+    QAction *moveDown = menu.addAction(tr("Move Down"));
+    QAction *remove = menu.addAction(tr("&Remove"));
+    QAction *removeAll = menu.addAction(tr("Remove All"));
     m_contextMenuIndex = indexAt(event->pos());
-    if (!m_contextMenuIndex.isValid())
+    if (!m_contextMenuIndex.isValid()) {
+        moveUp->setEnabled(false);
+        moveDown->setEnabled(false);
         remove->setEnabled(false);
+    }
 
     if (model()->rowCount() == 0)
         removeAll->setEnabled(false);
 
+    connect(moveUp, SIGNAL(triggered()),
+            m_manager, SLOT(moveUp()));
+    connect(moveDown, SIGNAL(triggered()),
+            m_manager, SLOT(moveDown()));
     connect(remove, SIGNAL(triggered()),
             this, SLOT(removeFromContextMenu()));
     connect(removeAll, SIGNAL(triggered()),
@@ -251,18 +261,16 @@ void BookmarkView::removeFromContextMenu()
 
 void BookmarkView::removeBookmark(const QModelIndex& index)
 {
-    BookmarkManager *manager = static_cast<BookmarkManager *>(model());
-    Bookmark *bm = manager->bookmarkForIndex(index);
-    manager->removeBookmark(bm);
+    Bookmark *bm = m_manager->bookmarkForIndex(index);
+    m_manager->removeBookmark(bm);
 }
 
 // The perforcemance of this function could be greatly improved.
 //
 void BookmarkView::removeAll()
 {
-    BookmarkManager *manager = static_cast<BookmarkManager *>(model());
-    while (manager->rowCount()) {
-        QModelIndex index = manager->index(0, 0);
+    while (m_manager->rowCount()) {
+        QModelIndex index = m_manager->index(0, 0);
         removeBookmark(index);
     }
 }
@@ -271,6 +279,7 @@ void BookmarkView::setModel(QAbstractItemModel *model)
 {
     BookmarkManager *manager = qobject_cast<BookmarkManager *>(model);
     QTC_ASSERT(manager, return);
+    m_manager = manager;
     QListView::setModel(model);
     setSelectionModel(manager->selectionModel());
     setSelectionMode(QAbstractItemView::SingleSelection);
@@ -279,10 +288,9 @@ void BookmarkView::setModel(QAbstractItemModel *model)
 
 void BookmarkView::gotoBookmark(const QModelIndex &index)
 {
-    BookmarkManager *bm = static_cast<BookmarkManager *>(model());
-    Bookmark *bk = bm->bookmarkForIndex(index);
-    if (!bm->gotoBookmark(bk))
-        bm->removeBookmark(bk);
+    Bookmark *bk = m_manager->bookmarkForIndex(index);
+    if (!m_manager->gotoBookmark(bk))
+        m_manager->removeBookmark(bk);
 }
 
 ////
diff --git a/src/plugins/bookmarks/bookmarkmanager.h b/src/plugins/bookmarks/bookmarkmanager.h
index d916759fe82d09e3da3cb81c827e78b16b2fb6b4..02c303683340a4515aafc2d6762e8a8a91b77a81 100644
--- a/src/plugins/bookmarks/bookmarkmanager.h
+++ b/src/plugins/bookmarks/bookmarkmanager.h
@@ -151,6 +151,7 @@ protected:
 private:
     BookmarkContext *m_bookmarkContext;
     QModelIndex m_contextMenuIndex;
+    BookmarkManager *m_manager;
 };
 
 class BookmarkContext : public Core::IContext
diff --git a/src/plugins/bookmarks/bookmarksplugin.cpp b/src/plugins/bookmarks/bookmarksplugin.cpp
index ca6f406d111a847ec65079891e1bc8b1989960b9..dc91a36cc2fb221a7d7ac459388cee86bfb48764 100644
--- a/src/plugins/bookmarks/bookmarksplugin.cpp
+++ b/src/plugins/bookmarks/bookmarksplugin.cpp
@@ -98,21 +98,6 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
     cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.Toggle"), textcontext);
     mbm->addAction(cmd);
 
-    // Move Up
-    m_moveUpAction = new QAction(tr("Move Up"), this);
-    cmd = am->registerAction(m_moveUpAction, BOOKMARKS_MOVEUP_ACTION, context);
-    mbm->addAction(cmd);
-
-    // Move Down
-    m_moveDownAction = new QAction(tr("Move Down"), this);
-    cmd = am->registerAction(m_moveDownAction, BOOKMARKS_MOVEDOWN_ACTION, context);
-    mbm->addAction(cmd);
-
-    sep = new QAction(this);
-    sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.Navigation"), context);
-    mbm->addAction(cmd);
-
     //Previous
     m_prevAction = new QAction(tr("Previous Bookmark"), this);
     cmd = am->registerAction(m_prevAction, BOOKMARKS_PREV_ACTION, globalcontext);
@@ -155,8 +140,6 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
     connect(m_nextAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(next()));
     connect(m_docPrevAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(prevInDocument()));
     connect(m_docNextAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(nextInDocument()));
-    connect(m_moveUpAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(moveUp()));
-    connect(m_moveDownAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(moveDown()));
     connect(m_bookmarkManager, SIGNAL(updateActions(int)), this, SLOT(updateActions(int)));
     updateActions(m_bookmarkManager->state());
     addAutoReleasedObject(new BookmarkViewFactory(m_bookmarkManager));
@@ -192,8 +175,6 @@ void BookmarksPlugin::updateActions(int state)
     m_nextAction->setEnabled(hasbm);
     m_docPrevAction->setEnabled(hasdocbm);
     m_docNextAction->setEnabled(hasdocbm);
-    m_moveUpAction->setEnabled(hasbm);
-    m_moveDownAction->setEnabled(hasbm);
 }
 
 void BookmarksPlugin::editorOpened(Core::IEditor *editor)
diff --git a/src/plugins/bookmarks/bookmarksplugin.h b/src/plugins/bookmarks/bookmarksplugin.h
index 3686dbec9148c4944cbe91afc6a578d7718295c2..5a55e86433339886040d138dace132da4cf7d6b0 100644
--- a/src/plugins/bookmarks/bookmarksplugin.h
+++ b/src/plugins/bookmarks/bookmarksplugin.h
@@ -85,8 +85,6 @@ private:
     QAction *m_nextAction;
     QAction *m_docPrevAction;
     QAction *m_docNextAction;
-    QAction *m_moveUpAction;
-    QAction *m_moveDownAction;
 
     QAction *m_bookmarkMarginAction;
     int m_bookmarkMarginActionLineNumber;