diff -ur uClinux-2.4.6.0pre0/fs/binfmt_flat.c uClinux-2.4.6.0pre0.actiontec/fs/binfmt_flat.c
--- uClinux-2.4.6.0pre0/fs/binfmt_flat.c	2004-12-12 20:06:42.000000000 +0100
+++ uClinux-2.4.6.0pre0.actiontec/fs/binfmt_flat.c	2004-12-15 18:30:29.000000000 +0100
@@ -246,7 +246,6 @@
 #define hufts (zloc->hufts)
 
 #define get_byte()  (inptr < insize ? inbuf[inptr++] : fill_inbuf(zloc))
-#define memzero(s, n)     memset ((s), 0, (n))
 
 #define OF(args)  args
 #define Assert(cond,msg)
@@ -285,7 +285,6 @@
 #undef crc_32_tab
 
 #undef get_byte
-#undef memzero
 
 
 static int decompress_exec(
@@ -420,8 +420,8 @@
 
 	if (strncmp(hdr->magic, "bFLT", 4) ||
 			(rev != FLAT_VERSION && rev != OLD_FLAT_VERSION)) {
-		printk("BINFMT_FLAT: bad magic/rev (%d, need %d)\n",
-				rev, (int) FLAT_VERSION);
+		if (strncmp(hdr->magic, "#!", 2))	/* OZH */
+			printk("BINFMT_FLAT: bad magic/rev (%d, need %d)\n", rev, (int) FLAT_VERSION);
 		return -ENOEXEC;
 	}
 
@@ -624,9 +624,13 @@
 
 	if (rev > OLD_FLAT_VERSION) {
 		for (i=0; i < relocs; i++) {
-			rp = (unsigned long *) calc_reloc(ntohl(reloc[i]), text_len);
+			unsigned long reloc_tmp = ntohl(reloc[i]);
+			rp = (unsigned long *) calc_reloc(reloc_tmp, text_len);
 			if (*rp != 0)
-				*rp = calc_reloc(ntohl(*rp), text_len);	/* And relocate it */
+			{
+				reloc_tmp = *rp;
+				*rp = calc_reloc(reloc_tmp, text_len);	/* And relocate it */
+			}
 		}
 	} else {
 		for (i=0; i < relocs; i++)

