diff --git a/qtbase/src/gui/kernel/qguiapplication.cpp b/qtbase/src/gui/kernel/qguiapplication.cpp
index 4c819e0915..6070a01334 100644
--- a/qtbase/src/gui/kernel/qguiapplication.cpp
+++ b/qtbase/src/gui/kernel/qguiapplication.cpp
@@ -1409,7 +1409,7 @@ void QGuiApplicationPrivate::createPlatformIntegration()
     const bool defaultIsWayland = !defaultIsXcb && platformPluginBase.startsWith("wayland");
     const QByteArray waylandPlatformName = defaultIsWayland ? platformName : "wayland";
     if (hasWaylandDisplay || isWaylandSessionType) {
-        preferredPlatformOrder.prepend(waylandPlatformName);
+        preferredPlatformOrder.append(waylandPlatformName);
 
         if (defaultIsWayland)
             platformName.clear();
diff --git a/qtbase/src/gui/painting/qdrawhelper.cpp b/qtbase/src/gui/painting/qdrawhelper.cpp
index 35c44b8286..83bddae681 100644
--- a/qtbase/src/gui/painting/qdrawhelper.cpp
+++ b/qtbase/src/gui/painting/qdrawhelper.cpp
@@ -26,7 +26,7 @@
 #include <qmath.h>
 
 #if QT_CONFIG(thread) && !defined(Q_OS_WASM)
-#define QT_USE_THREAD_PARALLEL_FILLS
+//#define QT_USE_THREAD_PARALLEL_FILLS
 #endif
 
 #if defined(QT_USE_THREAD_PARALLEL_FILLS)
diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoatheme.mm b/qtbase/src/plugins/platforms/cocoa/qcocoatheme.mm
index 1ea3505061..32396abc96 100644
--- a/qtbase/src/plugins/platforms/cocoa/qcocoatheme.mm
+++ b/qtbase/src/plugins/platforms/cocoa/qcocoatheme.mm
@@ -208,17 +208,6 @@ inline QMacPaletteMap(QPlatformTheme::Palette p, NSColor *a, NSColor *i) :
 QCocoaTheme::QCocoaTheme()
     : m_systemPalette(nullptr)
 {
-    if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave) {
-        m_appearanceObserver = QMacKeyValueObserver(NSApp, @"effectiveAppearance", [this] {
-            NSAppearance.currentAppearance = NSApp.effectiveAppearance;
-            handleSystemThemeChange();
-        });
-    }
-
-    m_systemColorObserver = QMacNotificationObserver(nil,
-        NSSystemColorsDidChangeNotification, [this] {
-            handleSystemThemeChange();
-    });
 }
 
 QCocoaTheme::~QCocoaTheme()
diff --git a/qtbase/src/widgets/dialogs/qmessagebox.cpp b/qtbase/src/widgets/dialogs/qmessagebox.cpp
index b4d76bc5ec..42853617a6 100644
--- a/qtbase/src/widgets/dialogs/qmessagebox.cpp
+++ b/qtbase/src/widgets/dialogs/qmessagebox.cpp
@@ -798,6 +798,9 @@ QMessageBox::QMessageBox(QWidget *parent)
 {
     Q_D(QMessageBox);
     d->init();
+
+    if (parent)
+        setWindowModality(Qt::WindowModal);
 }
 
 /*!
diff --git a/qtbase/src/gui/text/qtextimagehandler.cpp b/qtbase/src/gui/text/qtextimagehandler.cpp
index 290aa256cb..3bc18eaa96 100644
--- a/qtbase/src/gui/text/qtextimagehandler.cpp
+++ b/qtbase/src/gui/text/qtextimagehandler.cpp
@@ -217,6 +217,7 @@ void QTextImageHandler::drawObject(QPainter *p, const QRectF &rect, QTextDocumen
     Q_UNUSED(posInDocument);
         const QTextImageFormat imageFormat = format.toImageFormat();
 
+    p->setRenderHint(QPainter::SmoothPixmapTransform);
     if (QCoreApplication::instance()->thread() != QThread::currentThread()) {
         const QImage image = getImage(doc, imageFormat, p->device()->devicePixelRatio());
         p->drawImage(rect, image, image.rect());
diff --git a/configure.bat b/configure.bat
index 500d627f..dd48ba05 100644
--- a/configure.bat
+++ b/configure.bat
@@ -40,7 +40,7 @@ echo + cd qtbase
 cd qtbase || exit /b 1

 echo + %configure% -top-level %*
-call %configure% -top-level %*
+call "%configure%" -top-level %*
 set err=%errorlevel%

 cd ..
diff --git a/qtbase/src/plugins/platforms/cocoa/qcocoascreen.mm b/qtbase/src/plugins/platforms/cocoa/qcocoascreen.mm
index 0e5b704ca8..b594f680af 100644
--- a/qtbase/src/plugins/platforms/cocoa/qcocoascreen.mm
+++ b/qtbase/src/plugins/platforms/cocoa/qcocoascreen.mm
@@ -522,6 +522,8 @@ void flushOutput() {
             QWindow *w = cocoaWindow->window();
             if (!w->isVisible())
                 return;
+            if (w->flags() & Qt::WindowTransparentForInput)
+                return;
 
             if (!QHighDpi::toNativePixels(w->geometry(), w).contains(point))
                 return;
diff --git a/qtbase/src/gui/kernel/qevent.cpp b/qtbase/src/gui/kernel/qevent.cpp
index 326d9020f3..f9db205d74 100644
--- a/qtbase/src/gui/kernel/qevent.cpp
+++ b/qtbase/src/gui/kernel/qevent.cpp
@@ -1359,6 +1359,10 @@ QKeyEvent::QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const
 {
      if (type == QEvent::ShortcutOverride)
         ignore();
+
+	 // Ignore characters in the private use area, macOS for example uses these for arrow keys
+	 if (m_text.size() == 1 && m_text[0].unicode() >= 0xe000 && m_text[0].unicode() <= 0xf8ff)
+		 m_text = QString();
 }
 
 /*!
@@ -1388,6 +1392,10 @@ QKeyEvent::QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
 {
     if (type == QEvent::ShortcutOverride)
         ignore();
+
+	 // Ignore characters in the private use area, macOS for example uses these for arrow keys
+	 if (m_text.size() == 1 && m_text[0].unicode() >= 0xe000 && m_text[0].unicode() <= 0xf8ff)
+		 m_text = QString();
 }
 
 
