diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index c2e8038ee87d7a6e968ecb69c8845af39b5991a4..bb9b698d39612b30b3c87632da73145127a9cc47 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -438,9 +438,8 @@ static int bootm_start_standalone(ulong iflag, int argc, char * const argv[])
 		setenv("filesize", buf);
 		return 0;
 	}
-	appl = (int (*)(int, char * const []))ntohl(images.ep);
+	appl = (int (*)(int, char * const []))(ulong)ntohl(images.ep);
 	(*appl)(argc-1, &argv[1]);
-
 	return 0;
 }
 
@@ -464,14 +463,14 @@ static cmd_tbl_t cmd_bootm_sub[] = {
 int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	int ret = 0;
-	int state;
+	long state;
 	cmd_tbl_t *c;
 	boot_os_fn *boot_fn;
 
 	c = find_cmd_tbl(argv[1], &cmd_bootm_sub[0], ARRAY_SIZE(cmd_bootm_sub));
 
 	if (c) {
-		state = (int)c->cmd;
+		state = (long)c->cmd;
 
 		/* treat start special since it resets the state machine */
 		if (state == BOOTM_STATE_START) {