diff --git a/src/qdbus/qdbusviewer/qdbusviewer.cpp b/src/qdbus/qdbusviewer/qdbusviewer.cpp
index 2a93a03225dd0794b5de5d0510d06017a3873255..c96df0730d0264dd4ea6cc9a8e2c018765ad27ff 100644
--- a/src/qdbus/qdbusviewer/qdbusviewer.cpp
+++ b/src/qdbus/qdbusviewer/qdbusviewer.cpp
@@ -171,6 +171,11 @@ void QDBusViewer::logMessage(const QString &msg)
     log->append(msg + QLatin1Char('\n'));
 }
 
+void QDBusViewer::showEvent(QShowEvent *)
+{
+    serviceFilterLine->setFocus();
+}
+
 void QDBusViewer::logError(const QString &msg)
 {
     log->append(QLatin1String("<font color=\"red\">Error: </font>") + msg.toHtmlEscaped() + QLatin1String("<br>"));
diff --git a/src/qdbus/qdbusviewer/qdbusviewer.h b/src/qdbus/qdbusviewer/qdbusviewer.h
index b2ce5bba6d8d206ce655eda5c917cfaf60eb86f8..4ca9c7cbb9b426bc8f7b260cf53bea699dee7377 100644
--- a/src/qdbus/qdbusviewer/qdbusviewer.h
+++ b/src/qdbus/qdbusviewer/qdbusviewer.h
@@ -86,6 +86,7 @@ private slots:
 
 private:
     void logMessage(const QString &msg);
+    void showEvent(QShowEvent *) override;
 
     QDBusConnection c;
     QString currentService;