diff --git a/src/plugins/fakevim/handler.cpp b/src/plugins/fakevim/handler.cpp
index dbb9cc3f6b770f8369421c3e89cef788791a5191..e1540c9f511fd6f3b0dee1cf2d7ba944f9a0897a 100644
--- a/src/plugins/fakevim/handler.cpp
+++ b/src/plugins/fakevim/handler.cpp
@@ -153,6 +153,7 @@ FakeVimHandler::Private::Private(FakeVimHandler *parent)
 {
     q = parent;
     m_mode = CommandMode;
+    m_commandCode = 0;
     m_fakeEnd = false;
     m_lastSearchBackward = false;
     m_register = '"';
@@ -240,7 +241,6 @@ void FakeVimHandler::Private::finishMovement()
 
 void FakeVimHandler::Private::updateCommandBuffer()
 {
-    //qDebug() << "CMD" << m_commandBuffer;
     QString msg = QChar(m_commandCode ? m_commandCode : ' ') + m_commandBuffer;
     emit q->commandBufferChanged(msg);
 }
@@ -605,9 +605,10 @@ void FakeVimHandler::Private::moveToNextWord(int repeat, bool simple)
     // FIXME: 'w' should stop on empty lines, too
     QTextDocument *doc = m_tc.document();
     int n = lastPositionInDocument() - 1;
-    int lastClass = 0;
+    QChar c = doc->characterAt(m_tc.position());
+    int lastClass = charClass(c, simple);
     while (true) {
-        QChar c = doc->characterAt(m_tc.position());
+        c = doc->characterAt(m_tc.position());
         int thisClass = charClass(c, simple);
         if (thisClass != lastClass && thisClass != 0)
             --repeat;