diff --git a/src/TextInputWidget.cc b/src/TextInputWidget.cc
index e68b1c286d5e73678c2c8bef51a061a830af0b1b..cad54d962290afc95ee0ace8c57f517458be8dbe 100644
--- a/src/TextInputWidget.cc
+++ b/src/TextInputWidget.cc
@@ -40,11 +40,14 @@ FilteredTextEdit::FilteredTextEdit(QWidget *parent)
 void
 FilteredTextEdit::keyPressEvent(QKeyEvent *event)
 {
-        if (!typingTimer_->isActive()) {
-                emit startedTyping();
-        }
+        const bool isModifier = (event->modifiers() != Qt::NoModifier);
+
+        if (!isModifier) {
+                if (!typingTimer_->isActive())
+                        emit startedTyping();
 
-        typingTimer_->start();
+                typingTimer_->start();
+        }
 
         if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
                 stopTyping();