diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
index 77ac05b..6a3f1a1 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
@@ -665,6 +665,19 @@ void QWebPagePrivate::dropEvent(QDropEvent *ev)
 #endif
 }
 
+void QWebPagePrivate::propagatePalleteChange(const QPalette &pal)
+{
+    if (mainFrame->d->frame && mainFrame->d->frame->view()) {
+        WebCore::FrameView *view = mainFrame->d->frame->view();
+        QBrush brush = pal.brush(QPalette::Background);
+        if (brush.style() == Qt::SolidPattern) {
+            view->setBaseBackgroundColor(brush.color());
+            if (!brush.color().alpha())
+                view->setTransparent(true);
+        }
+    }
+}
+
 void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev)
 {
     WebCore::Frame *frame = page->focusController()->focusedOrMainFrame();
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h
index ad0b5ff..efd9da7 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.h
@@ -261,6 +261,7 @@ private:
 
     friend class QWebFrame;
     friend class QWebPagePrivate;
+    friend class QWebView;
     friend class WebCore::ChromeClientQt;
     friend class WebCore::EditorClientQt;
     friend class WebCore::FrameLoaderClientQt;
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h
index 8a7c831..65a203c 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage_p.h
@@ -122,6 +122,8 @@ public:
 
     void inputMethodEvent(QInputMethodEvent*);
 
+    void propagatePalleteChange(const QPalette &pal);
+
     WebCore::ChromeClientQt *chromeClient;
     WebCore::ContextMenuClientQt *contextMenuClient;
     WebCore::EditorClientQt *editorClient;
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
index cb81c3f..4e4d5e5 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.cpp
@@ -20,6 +20,7 @@
 #include "config.h"
 #include "qwebview.h"
 #include "qwebframe.h"
+#include "qwebpage_p.h"
 #include "qevent.h"
 #include "qpainter.h"
 #include "qprinter.h"
@@ -80,6 +81,7 @@ QWebPage *QWebView::page() const
     if (!d->page) {
         QWebView *that = const_cast<QWebView *>(this);
         that->setPage(new QWebPage(that));
+        d->page->d->propagatePalleteChange(palette());
     }
     return d->page;
 }
@@ -620,6 +622,15 @@ void QWebView::inputMethodEvent(QInputMethodEvent *e)
        d->page->event(e);
 }
 
+/*!\reimp
+*/
+void QWebView::changeEvent(QEvent *e)
+{
+    if (d->page && e->type() == QEvent::PaletteChange) {
+        d->page->d->propagatePalleteChange(palette());
+    }
+    QWidget::changeEvent(e);
+}
 
 /*!
   \fn void QWebView::titleChanged(const QString &title)
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h
index 9667a79..fb36069 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebview.h
@@ -122,6 +122,7 @@ protected:
 
     virtual QWebView *createWindow(QWebPage::WebWindowType type);
 
+    virtual void changeEvent(QEvent*);
     virtual void mouseMoveEvent(QMouseEvent*);
     virtual void mousePressEvent(QMouseEvent*);
     virtual void mouseDoubleClickEvent(QMouseEvent*);
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index ac12e8b..58ac43e 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -201,6 +201,16 @@ void FrameLoaderClientQt::transitionToCommittedForNewPage()
     else
         frameView = new FrameView(m_frame);
 
+    if (m_webFrame && m_webFrame->page() && m_webFrame->page()->view()) {
+        QPalette pal = m_webFrame->page()->view()->palette();
+        QBrush brush = pal.brush(QPalette::Background);
+        if (brush.style() == Qt::SolidPattern) {
+            frameView->setBaseBackgroundColor(brush.color());
+            if (!brush.color().alpha())
+                frameView->setTransparent(true);
+        }
+    }
+
     if (!m_webFrame->d->allowsScrolling)
         frameView->setScrollbarsMode(ScrollbarAlwaysOff);
     if (m_webFrame->d->marginWidth != -1)
