diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index 76eb7f25e305f22ba1352adb427ed5cce088f720..6af3210bf285e1216bba9b6873bc3205d197dd76 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -42,6 +42,7 @@
 
 #include <QFont>
 #include <QTimer>
+#include <QTouchDevice>
 
 static const int batchTimerTimeout = 100;
 
@@ -68,6 +69,21 @@ private:
 
 #include "web_engine_settings.moc"
 
+static inline bool isTouchScreenAvailable() {
+    static bool initialized = false;
+    static bool touchScreenAvailable = false;
+    if (!initialized) {
+        Q_FOREACH (const QTouchDevice *d, QTouchDevice::devices()) {
+            if (d->type() == QTouchDevice::TouchScreen) {
+                touchScreenAvailable = true;
+                break;
+            }
+        }
+        initialized = true;
+    }
+    return touchScreenAvailable;
+}
+
 
 WebEngineSettings::WebEngineSettings(WebEngineSettingsDelegate *delegate)
     : m_adapter(0)
@@ -245,6 +261,7 @@ void WebEngineSettings::applySettingsToWebPreferences(WebPreferences *prefs)
 {
     // Override for now
     prefs->java_enabled = false;
+    prefs->touch_enabled = isTouchScreenAvailable();
 
     // Attributes mapping.
     prefs->loads_images_automatically = testAttribute(AutoLoadImages);