diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
index 5f2cc9abbc2b545411fb669f209e9ab2b7b1342f..f0946b9b647736e6a3852a146f1acc7dd2c7d8fd 100644
--- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp
+++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
@@ -129,13 +129,14 @@ void QEglFSIntegration::initialize()
 
     m_vtHandler.reset(new QFbVtHandler);
 
-    if (!m_disableInputHandlers)
-        createInputHandlers();
-
     if (qt_egl_device_integration()->usesDefaultScreen())
         addScreen(new QEglFSScreen(display()));
     else
         qt_egl_device_integration()->screenInit();
+
+    // Input code may rely on the screens, so do it only after the screen init.
+    if (!m_disableInputHandlers)
+        createInputHandlers();
 }
 
 void QEglFSIntegration::destroy()