diff --git a/community/gnome-session/APKBUILD b/community/gnome-session/APKBUILD
index f8a6b08476b9313cdfabedc2d9c526b3c0803233..0a98a40246900f77ec9797445a1118a94e58304c 100644
--- a/community/gnome-session/APKBUILD
+++ b/community/gnome-session/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: team/gnome <ablocorrea@hotmail.com>
 pkgname=gnome-session
 pkgver=45.0
-pkgrel=0
+pkgrel=1
 pkgdesc="GNOME session manager"
 url="https://gitlab.gnome.org/GNOME/gnome-session"
 arch="all"
@@ -31,7 +31,9 @@ makedepends="
 replaces="gnome-shell"
 options="!check" #no tests
 subpackages="$pkgname-lang $pkgname-doc"
-source="https://download.gnome.org/sources/gnome-session/${pkgver%%.*}/gnome-session-$pkgver.tar.xz"
+source="https://download.gnome.org/sources/gnome-session/${pkgver%%.*}/gnome-session-$pkgver.tar.xz
+	gnome-session-bash-login.patch
+"
 
 build() {
 	abuild-meson \
@@ -53,4 +55,5 @@ package() {
 }
 sha512sums="
 3eb3b4b9fcab2ec35bb61bac6257b254f142167250bbc1eb71d46aed350372f8942601c9d5ca5856e8686b53b70321f914cb55f1639daecfe6c61d84cb6d8aba  gnome-session-45.0.tar.xz
+b606c906d2d1b8d34cff2c5a3653ef14c0897a49cecc74c604fddd7d95c4bb181f1027c2fc259d4e3df99278e5f66cd2cc088efbc5f9925d24eb73a7805b144b  gnome-session-bash-login.patch
 "
diff --git a/community/gnome-session/gnome-session-bash-login.patch b/community/gnome-session/gnome-session-bash-login.patch
new file mode 100644
index 0000000000000000000000000000000000000000..df2149f020d44ce1e7bd1c8d4c2d24404e24faae
--- /dev/null
+++ b/community/gnome-session/gnome-session-bash-login.patch
@@ -0,0 +1,17 @@
+diff --git i/gnome-session/gnome-session.in w/gnome-session/gnome-session.in
+index ddd1a591..b6dd6cb8 100755
+--- i/gnome-session/gnome-session.in
++++ w/gnome-session/gnome-session.in
+@@ -7,7 +7,11 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
+    ! (echo "$SHELL" | grep -q "false") &&
+    ! (echo "$SHELL" | grep -q "nologin"); then
+   if [ "$1" != '-l' ]; then
+-    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++    if [ "x$SHELL" = "x/bin/bash" ]; then
++      exec bash -c "exec '$SHELL' -l -c '$0 -l $*'"
++    else
++      exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++    fi
+   else
+     shift
+   fi