diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index fbe81d3039aa41e61e46ce7764eb776e81b94083..aa7c0f5b777f9f0490cb036b2531a53e4c52b1e5 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -79,10 +79,6 @@ static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 static void print_type (image_header_t *hdr);
 
-#ifdef __I386__
-image_header_t *fake_header(image_header_t *hdr, void *ptr, int size);
-#endif
-
 /*
  *  Continue booting an OS image; caller already has:
  *  - copied image header to global variable `header'
@@ -157,22 +153,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
 	memmove (&header, (char *)addr, image_get_header_size ());
 
-	if (!image_check_magic (hdr)) {
-#ifdef __I386__	/* correct image format not implemented yet - fake it */
-		if (fake_header(hdr, (void*)addr, -1) != NULL) {
-			/* to compensate for the addition below */
-			addr -= image_get_header_size ();
-			/* turnof verify,
-			 * fake_header() does not fake the data crc
-			 */
-			verify = 0;
-		} else
-#endif	/* __I386__ */
-	    {
+	if (!image_check_magic(hdr)) {
 		puts ("Bad Magic Number\n");
 		show_boot_progress (-1);
 		return 1;
-	    }
 	}
 	show_boot_progress (2);
 
diff --git a/include/asm-i386/zimage.h b/include/asm-i386/zimage.h
index c7103b1f37e5f8867c2ee2b56f6748e417157bb8..b6266e456a594dc2cca9db0fbd93c970138cbee2 100644
--- a/include/asm-i386/zimage.h
+++ b/include/asm-i386/zimage.h
@@ -70,6 +70,5 @@ void *load_zimage(char *image, unsigned long kernel_size,
 		  int auto_boot);
 
 void boot_zimage(void *setup_base);
-image_header_t *fake_zimage_header(image_header_t *hdr, void *ptr, int size);
 
 #endif
diff --git a/lib_i386/i386_linux.c b/lib_i386/i386_linux.c
index 67a78c4e3bfcf3803bea8bdcd675b71aa533ecb2..6cb021a193e422ef4c09d2ed201f66968549074e 100644
--- a/lib_i386/i386_linux.c
+++ b/lib_i386/i386_linux.c
@@ -33,18 +33,6 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 extern image_header_t header;           /* from cmd_bootm.c */
 
-
-image_header_t *fake_header(image_header_t *hdr, void *ptr, int size)
-{
-	/* try each supported image type in order */
-	if (NULL != fake_zimage_header(hdr, ptr, size)) {
-		return hdr;
-	}
-
-	return NULL;
-}
-
-
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 		ulong addr, ulong *len_ptr, int   verify)
 {
diff --git a/lib_i386/zimage.c b/lib_i386/zimage.c
index 20f9f8d84b8d0b35598b340ff33bda60e52d0558..c3b4e597aabfd310b085239eb78ac70b005b703f 100644
--- a/lib_i386/zimage.c
+++ b/lib_i386/zimage.c
@@ -212,7 +212,6 @@ void *load_zimage(char *image, unsigned long kernel_size,
 	return setup_base;
 }
 
-
 void boot_zimage(void *setup_base)
 {
 	struct pt_regs regs;
@@ -224,51 +223,3 @@ void boot_zimage(void *setup_base)
 	regs.eflags = 0;
 	enter_realmode(((u32)setup_base+SETUP_START_OFFSET)>>4, 0, &regs, &regs);
 }
-
-
-image_header_t *fake_zimage_header(image_header_t *hdr, void *ptr, int size)
-{
-	/* There is no way to know the size of a zImage ... *
-	 * so we assume that 2MB will be enough for now */
-#define ZIMAGE_SIZE 0x200000
-
-	/* load a 1MB, the loaded will have to be moved to its final
-	 * position again later... */
-#define ZIMAGE_LOAD 0x100000
-
-	ulong checksum;
-
-	if (KERNEL_MAGIC != *(u16*)(ptr + BOOT_FLAG_OFF)) {
-		/* not a zImage or bzImage */
-		return NULL;
-	}
-
-	if (-1 == size) {
-		size = ZIMAGE_SIZE;
-	}
-#if 0
-	checksum = crc32 (0, ptr, size);
-#else
-	checksum = 0;
-#endif
-	memset(hdr, 0, image_get_header_size ());
-
-	/* Build new header */
-	image_set_magic (hdr, IH_MAGIC);
-	image_set_time (hdr, 0);
-	image_set_size (hdr, size);
-	image_set_load (hdr, ZIMAGE_LOAD);
-	image_set_ep (hdr, 0);
-	image_set_dcrc (hdr, checksum);
-	image_set_os (hdr, IH_OS_LINUX);
-	image_set_arch (hdr, IH_ARCH_I386);
-	image_set_type (hdr, IH_TYPE_KERNEL);
-	image_set_comp (hdr, IH_COMP_NONE);
-
-	image_set_name (hdr, "(none)");
-
-	checksum = crc32 (0, (const char *)hdr, image_get_header_size ());
-	image_set_hcrc (hdr, checksum);
-
-	return hdr;
-}