--- a/src/subshell/common.c
+++ b/src/subshell/common.c
@@ -843,16 +843,9 @@ init_subshell_precmd (char *precmd, size
          * "PS1='$($PRECMD)$ '\n",
          */
         g_snprintf (precmd, buff_size,
-                    "precmd() { "
-                    "if [ ! \"${PWD##$HOME}\" ]; then "
-                    "MC_PWD=\"~\"; "
-                    "else "
-                    "[ \"${PWD##$HOME/}\" = \"$PWD\" ] && MC_PWD=\"$PWD\" || MC_PWD=\"~/${PWD##$HOME/}\"; "
-                    "fi; "
-                    "echo \"$USER@$(hostname -s):$MC_PWD\"; "
-                    "pwd>&%d; "
-                    "kill -STOP $$; "
-                    "}; " "PRECMD=precmd; " "PS1='$($PRECMD)$ '\n", subshell_pipe[WRITE]);
+                    "precmd() { pwd>&%d; kill -STOP $$; }; "
+                    "PRECMD=precmd; "
+                    "PS1='$(eval $PRECMD)\\u@\\h:\\w\\$ '\n", subshell_pipe[WRITE]);
         break;
 
     case SHELL_ZSH:
