diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index 2f0a389432874ef598a95eb0c5d57dc4fe2d3afd..50d45ff8769f1731c67317ca938dca7be727a9fd 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -180,7 +180,16 @@ bool FakeVimPluginPrivate::initialize()
 
 void FakeVimPluginPrivate::installHandler(Core::IEditor *editor)
 {
+    if (!editor)
+        return;
+
     QWidget *widget = editor->widget();
+    if (!widget)
+        return;
+
+    // we can only handle QTextEdit and QPlainTextEdit
+    if (!qobject_cast<QTextEdit *>(widget) && !qobject_cast<QPlainTextEdit *>(widget))
+        return;
     
     FakeVimHandler *handler = new FakeVimHandler(widget, widget);