diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index b34380dbc3fb9c0a36c2fdfa915ab0b7056d87a0..a459a57482c8c1e1e8686ca1c65f7e15d3ca8f29 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -464,6 +464,9 @@ QDesktopWidget *qt_desktopWidget = 0;                // root window widgets
 */
 void QApplicationPrivate::process_cmdline()
 {
+    if (styleOverride.isEmpty() && qEnvironmentVariableIsSet("QT_STYLE_OVERRIDE"))
+        styleOverride = QString::fromLocal8Bit(qgetenv("QT_STYLE_OVERRIDE"));
+
     if (!styleOverride.isEmpty()) {
         if (app_style) {
             delete app_style;
@@ -1120,11 +1123,8 @@ QStyle *QApplication::style()
         // Compile-time search for default style
         //
         QString style;
-        QString envStyle = QString::fromLocal8Bit(qgetenv("QT_STYLE_OVERRIDE"));
         if (!QApplicationPrivate::styleOverride.isEmpty()) {
             style = QApplicationPrivate::styleOverride;
-        } else if (!envStyle.isEmpty()) {
-            style = envStyle;
         } else {
             style = QApplicationPrivate::desktopStyleKey();
         }