--- /dev/null
+diff --git "a/E:\\QtSource\\4.8.3\\src\\gui\\kernel\\qdnd_win.org" "b/E:\\QtSource\\4.8.3\\src\\gui\\kernel\\qdnd_win.cpp"
+index 20dfa76..c0268e1 100644
+--- "a/E:\\QtSource\\4.8.3\\src\\gui\\kernel\\qdnd_win.org"
++++ "b/E:\\QtSource\\4.8.3\\src\\gui\\kernel\\qdnd_win.cpp"
+@@ -712,7 +712,7 @@ QOleDropTarget::DragOver(DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
+ return NOERROR;
+ }
+
+- while (dragOverWidget && dragOverWidget != widget && !acceptsDrop(dragOverWidget))
++ while (dragOverWidget && !dragOverWidget->isWindow() && !acceptsDrop(dragOverWidget))
+ dragOverWidget = dragOverWidget->parentWidget();
+
+ if (!dragOverWidget || !acceptsDrop(dragOverWidget)) {
--- /dev/null
+diff --git "qprocess_win.original" "qprocess_win.cpp"
+index 417ee39..68721a3 100644
+--- "a\\src\\corelib\\io\\qprocess_win.original"
++++ "b\\src\\corelib\\io\\qprocess_win.cpp"
+@@ -413,6 +413,7 @@ void QProcessPrivate::startProcess()
+ #else
+ DWORD dwCreationFlags = CREATE_NO_WINDOW;
+ dwCreationFlags |= CREATE_UNICODE_ENVIRONMENT;
++ dwCreationFlags |= CREATE_BREAKAWAY_FROM_JOB;
+ STARTUPINFOW startupInfo = { sizeof( STARTUPINFO ), 0, 0, 0,
+ (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
+ (ulong)CW_USEDEFAULT, (ulong)CW_USEDEFAULT,
+@@ -858,7 +859,7 @@ bool QProcessPrivate::startDetached(const QString &program, const QStringList &a
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ };
+ success = CreateProcess(0, (wchar_t*)args.utf16(),
+- 0, 0, FALSE, CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE, 0,
++ 0, 0, FALSE, CREATE_UNICODE_ENVIRONMENT | CREATE_NEW_CONSOLE | CREATE_BREAKAWAY_FROM_JOB, 0,
+ workingDir.isEmpty() ? 0 : (wchar_t*)workingDir.utf16(),
+ &startupInfo, &pinfo);
+ #endif // Q_OS_WINCE