diff --git a/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-QTBUG-135158.patch b/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-QTBUG-135158.patch
new file mode 100644
index 0000000000..d4ee052f85
--- /dev/null
+++ b/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-QTBUG-135158.patch
@@ -0,0 +1,14 @@
+https://bugreports.qt.io/browse/QTBUG-135158
+https://codereview.qt-project.org/c/qt/qtdeclarative/+/647212
+--- a/src/quicktemplates/qquickpopuppositioner.cpp
++++ b/src/quicktemplates/qquickpopuppositioner.cpp
+@@ -321,5 +321,8 @@
+ : p->parentItem->mapToGlobal(windowPos.x(), windowPos.y());
+ QRectF rect = { globalCoords.x(), globalCoords.y(), popupItem->width(), popupItem->height() };
+- if (!skipFittingStep) {
++
++ // QTBUG-99618: On wayland, we can't use QWindow::mapToGlobal(), and should use a xdg_positioner instead.
++ static bool isWayland = QGuiApplication::platformName().startsWith(QLatin1String("wayland"));
++ if (!skipFittingStep && !isWayland) {
+ const QScreen *screenAtPopupPosition = QGuiApplication::screenAt(globalCoords.toPoint());
+ const QScreen *screen = screenAtPopupPosition ? screenAtPopupPosition : QGuiApplication::primaryScreen();
diff --git a/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-qmlcachegen-crash.patch b/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-qmlcachegen-crash.patch
new file mode 100644
index 0000000000..f3a0b70e00
--- /dev/null
+++ b/desktop/toolkit/qt6/qt6-declarative/files/qtdeclarative-6.9.1-qmlcachegen-crash.patch
@@ -0,0 +1,32 @@
+https://bugreports.qt.io/browse/QTBUG-136998
+https://bugreports.qt.io/browse/QTBUG-137196
+https://bugreports.qt.io/browse/QTBUG-137411
+https://github.com/qt/qtdeclarative/commit/672e6777e8e6a8fd86c7877075e7a8aa0ea0a31a
+--- a/src/qmlcompiler/qqmljsimportvisitor.cpp
++++ b/src/qmlcompiler/qqmljsimportvisitor.cpp
+@@ -1042,14 +1042,15 @@
+
+ if (!prevRequiredScope.isNull()) {
+- auto sourceScope = prevRequiredScope->baseType();
+- suggestion = QQmlJSFixSuggestion{
+- "%1:%2:%3: Property marked as required in %4."_L1
+- .arg(sourceScope->filePath())
+- .arg(sourceScope->sourceLocation().startLine)
+- .arg(sourceScope->sourceLocation().startColumn)
+- .arg(requiredScopeName),
+- sourceScope->sourceLocation()
+- };
+- suggestion->setFilename(sourceScope->filePath());
++ if (auto sourceScope = prevRequiredScope->baseType()) {
++ suggestion = QQmlJSFixSuggestion{
++ "%1:%2:%3: Property marked as required in %4."_L1
++ .arg(sourceScope->filePath())
++ .arg(sourceScope->sourceLocation().startLine)
++ .arg(sourceScope->sourceLocation().startColumn)
++ .arg(requiredScopeName),
++ sourceScope->sourceLocation()
++ };
++ suggestion->setFilename(sourceScope->filePath());
++ }
+ } else {
+ message += " (marked as required by %1)"_L1.arg(requiredScopeName);
diff --git a/desktop/toolkit/qt6/qt6-declarative/pspec.xml b/desktop/toolkit/qt6/qt6-declarative/pspec.xml
index 0e998acdc3..21b7ec7326 100755
--- a/desktop/toolkit/qt6/qt6-declarative/pspec.xml
+++ b/desktop/toolkit/qt6/qt6-declarative/pspec.xml
@@ -29,7 +29,8 @@
qt6-languageserver-devel
-
+ qtdeclarative-6.9.1-QTBUG-135158.patch
+ qtdeclarative-6.9.1-qmlcachegen-crash.patch
@@ -72,6 +73,13 @@
+
+ 2025-07-24
+ 6.9.1
+ Rebuild.
+ Pisi Linux Community
+ admin@pisilinux.org
+
2025-06-09
6.9.1