diff --git a/include/libbb.h b/include/libbb.h
index f22e58e..96173e8 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1757,7 +1757,7 @@ extern struct globals *const ptr_to_globals;
  * use bb_default_login_shell and following defines.
  * If you change LIBBB_DEFAULT_LOGIN_SHELL,
  * don't forget to change increment constant. */
-#define LIBBB_DEFAULT_LOGIN_SHELL  "-/bin/sh"
+#define LIBBB_DEFAULT_LOGIN_SHELL  "-/system/bin/sh"
 extern const char bb_default_login_shell[] ALIGN1;
 /* "/bin/sh" */
 #define DEFAULT_SHELL              (bb_default_login_shell+1)
diff --git a/init/init.c b/init/init.c
index 7248946..ff09ed1 100644
--- a/init/init.c
+++ b/init/init.c
@@ -1047,7 +1049,7 @@ int init_main(int argc UNUSED_PARAM, char **argv)
 	/* Make sure environs is set to something sane */
 	putenv((char *) "HOME=/");
 	putenv((char *) bb_PATH_root_path);
-	putenv((char *) "SHELL=/bin/sh");
+	putenv((char *) "SHELL=/system/bin/sh");
 	putenv((char *) "USER=root"); /* needed? why? */
 
 	if (argv[1])
diff --git a/shell/ash.c b/shell/ash.c
index b20c32b..ec313c2 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -13172,20 +13172,17 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
 	if (iflag) {
 		const char *hp = lookupvar("HISTFILE");
 		if (!hp) {
-			hp = lookupvar("HOME");
-			if (hp) {
-				char *defhp = concat_path_file(hp, ".ash_history");
-				setvar("HISTFILE", defhp, 0);
-				free(defhp);
-			}
+			setvar("HISTFILE", "/data/ash_history", 0);
 		}
 	}
 #endif
 	if (argv[0] && argv[0][0] == '-')
 		isloginsh = 1;
+	else
+		isloginsh = 1;
 	if (isloginsh) {
 		state = 1;
-		read_profile("/etc/profile");
+		read_profile("/system/etc/profile");
  state1:
 		state = 2;
 		read_profile(".profile");
