diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 180e42dc10b30489078d5c54216ff55c72192be9..811e51ac8ed0f34184e90f3b0a0c609f8769d86d 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -134,6 +134,7 @@ void NavigationWidgetPlaceHolder::currentModeAboutToChange(Core::IMode *mode)
 struct NavigationWidgetPrivate
 {
     explicit NavigationWidgetPrivate(QAction *toggleSideBarAction);
+    ~NavigationWidgetPrivate() { delete m_factoryModel; }
 
     QList<Internal::NavigationSubWidget *> m_subWidgets;
     QHash<QShortcut *, Core::Id> m_shortcutMap;
@@ -144,7 +145,7 @@ struct NavigationWidgetPrivate
     bool m_suppressed;
     int m_width;
     static NavigationWidget* m_instance;
-    QAction *m_toggleSideBarAction;
+    QAction *m_toggleSideBarAction; // does not take ownership
 };
 
 NavigationWidgetPrivate::NavigationWidgetPrivate(QAction *toggleSideBarAction) :