1diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
2index b4b1f8fa..99d52cba 100755
3--- a/gnome-session/gnome-session.in
4+++ b/gnome-session/gnome-session.in
5@@ -4,13 +4,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
6 [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
7 [ -n "$SHELL" ]; then
8 if [ "$1" != '-l' ]; then
9- exec bash -c "exec -l '$SHELL' -c 'exec $0 -l $*'"
10+ # Make sure the shell actually sets up the environment.
11+ unset __NIXOS_SET_ENVIRONMENT_DONE
12+ exec @bash@ -c "exec -l '$SHELL' -c 'exec $0 -l $*'"
13 else
14 shift
15 fi
16 fi
17
18-SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
19+SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
20 REGION=${SETTING#\'}
21 REGION=${REGION%\'}
22
23diff --git a/gnome-session/main.c b/gnome-session/main.c
24index a460a849..9d07898f 100644
25--- a/gnome-session/main.c
26+++ b/gnome-session/main.c
27@@ -215,7 +215,7 @@ require_dbus_session (int argc,
28 }
29 new_argv[i + 2] = NULL;
30
31- if (!execvp ("dbus-launch", new_argv)) {
32+ if (!execvp ("@dbusLaunch@", new_argv)) {
33 g_set_error (error,
34 G_SPAWN_ERROR,
35 G_SPAWN_ERROR_FAILED,