diff --git a/CHANGELOG b/CHANGELOG
index e7d1e73..64fee4a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,14 @@
 Changes since U-Boot 1.1.1:
 ======================================================================
 
+* Add automatic update support for LWMON board
+
+* Clear Block Lock-Bits when erasing flash on LWMON board.
+
+* Fix return code of "fatload" command
+
+* Enable MSDOS/VFAT filesystem support for LWMON board
+
 * Patch by Martin Krause, 03 Aug 2004:
   change timing for SM501 graphics controller on TQM5200 module
 
diff --git a/Makefile b/Makefile
index 1bf8a65..f955705 100644
--- a/Makefile
+++ b/Makefile
@@ -315,12 +315,12 @@
 	@[ -z "$(findstring AB,$@)" ] || \
 		{ echo "#define CONFIG_TQM5200_AB"	>>include/config.h ; \
 		  echo "... with 64 MB Flash, 64 MB SDRAM, 32 kB EEPROM, 512 kB SRAM" ; \
-		  echo "... with Grafic Controller"; \
+		  echo "... with Graphics Controller"; \
 		}
 	@[ -z "$(findstring AC,$@)" ] || \
 		{ echo "#define CONFIG_TQM5200_AC"	>>include/config.h ; \
 		  echo "... with 4 MB Flash, 128 MB SDRAM" ; \
-		  echo "... with Grafic Controller"; \
+		  echo "... with Graphics Controller"; \
 		}
 	@./mkconfig -a TQM5200 ppc mpc5xxx tqm5200
 
diff --git a/board/lwmon/flash.c b/board/lwmon/flash.c
index 4004865..b894887 100644
--- a/board/lwmon/flash.c
+++ b/board/lwmon/flash.c
@@ -403,6 +403,26 @@
 			/* Disable interrupts which might cause a timeout here */
 			flag = disable_interrupts();
 
+			*addr = 0x00600060;	/* clear lock bit setup */
+			*addr = 0x00D000D0;	/* clear lock bit confirm */
+
+			udelay (1000);
+			/* This takes awfully long - up to 50 ms and more */
+			while (((status = *addr) & 0x00800080) != 0x00800080) {
+				if ((now=get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
+					printf ("Timeout\n");
+					*addr = 0x00FF00FF; /* reset to read mode */
+					return 1;
+				}
+
+				/* show that we're waiting */
+				if ((now - last) > 1000) {	/* every second */
+					putc ('.');
+					last = now;
+				}
+				udelay (1000);	/* to trigger the watchdog */
+			}
+
 			*addr = 0x00500050;	/* clear status register */
 			*addr = 0x00200020;	/* erase setup */
 			*addr = 0x00D000D0;	/* erase confirm */
@@ -427,6 +447,7 @@
 					putc ('.');
 					last = now;
 				}
+				udelay (1000);	/* to trigger the watchdog */
 			}
 
 			*addr = 0x00FF00FF;	/* reset to read mode */
diff --git a/common/cmd_fat.c b/common/cmd_fat.c
index 150a2ea..6844c10 100644
--- a/common/cmd_fat.c
+++ b/common/cmd_fat.c
@@ -86,7 +86,7 @@
 
 	if (argc < 5) {
 		printf ("usage: fatload <interface> <dev[:part]> <addr> <filename> [bytes]\n");
-		return (0);
+		return 1;
 	}
 	dev = (int)simple_strtoul (argv[2], &ep, 16);
 	dev_desc=get_dev(argv[1],dev);
@@ -114,14 +114,15 @@
 
 	if(size==-1) {
 		printf("\n** Unable to read \"%s\" from %s %d:%d **\n",argv[4],argv[1],dev,part);
-	} else {
-		printf ("\n%ld bytes read\n", size);
-
-		sprintf(buf, "%lX", size);
-		setenv("filesize", buf);
+		return 1;
 	}
 
-	return size;
+	printf ("\n%ld bytes read\n", size);
+
+	sprintf(buf, "%lX", size);
+	setenv("filesize", buf);
+
+	return 0;
 }
 
 
diff --git a/include/configs/TQM5200.h b/include/configs/TQM5200.h
index 1f83aa5..7d39f22 100644
--- a/include/configs/TQM5200.h
+++ b/include/configs/TQM5200.h
@@ -27,8 +27,6 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#define DEBUG 1
-
 /*
  * High Level Configuration Options
  * (easy to change)
@@ -64,7 +62,7 @@
  */
 #define CONFIG_PCI		0
 #define CONFIG_PCI_PNP		1
-#define CONFIG_PCI_SCAN_SHOW	1
+/* #define CONFIG_PCI_SCAN_SHOW	1 */
 
 #define CONFIG_PCI_MEM_BUS	0x40000000
 #define CONFIG_PCI_MEM_PHYS	CONFIG_PCI_MEM_BUS
diff --git a/include/configs/lwmon.h b/include/configs/lwmon.h
index a76ec23..74186a8 100644
--- a/include/configs/lwmon.h
+++ b/include/configs/lwmon.h
@@ -78,12 +78,24 @@
 
 #define CONFIG_BOOTCOMMAND	"run flash_self"
 
+/*
+ * Keyboard commands:
+ * # = 0x28 = ENTER :		enable bootmessages on LCD
+ * 2 = 0x3A+0x3C = F1 + F3 :	enable update mode
+ * 3 = 0x3C+0x3F = F3 + F6 :	enable test mode
+ */
 #define	CONFIG_EXTRA_ENV_SETTINGS					\
 	"kernel_addr=40080000\0"					\
 	"ramdisk_addr=40280000\0"					\
-	"magic_keys=#3\0"						\
+	"magic_keys=#23\0"						\
 	"key_magic#=28\0"						\
 	"key_cmd#=setenv addfb setenv 'bootargs $bootargs console=tty0'\0" \
+	"key_magic2=3A+3C\0"						\
+	"key_cmd2=echo *** Entering Update Mode ***;"			\
+		"if fatload ide 0:3 10000 update.scr;"			\
+			"then autoscr 10000;"				\
+			"else echo *** UPDATE FAILED ***;"		\
+		"fi\0"							\
 	"key_magic3=3C+3F\0"						\
 	"key_cmd3=echo *** Entering Test Mode ***;"			\
 		"setenv add_misc 'setenv bootargs $bootargs testmode'\0" \
@@ -153,6 +165,7 @@
 				CFG_CMD_ASKENV	| \
 				CFG_CMD_DHCP	| \
 				CFG_CMD_DATE	| \
+				CFG_CMD_FAT	| \
 				CFG_CMD_I2C	| \
 				CFG_CMD_EEPROM	| \
 				CFG_CMD_IDE	| \
@@ -276,18 +289,12 @@
  */
 #define CFG_FLASH_BUFFER_SIZE	(2*32)
 
-#if 1
-/* Put environment in flash which is much faster to boot */
+/* Put environment in flash which is much faster to boot than using the EEPROM	*/
 #define CFG_ENV_IS_IN_FLASH	1
 #define CFG_ENV_ADDR	    0x40040000	/* Address    of Environment Sector	*/
 #define CFG_ENV_SIZE		0x2000	/* Total Size of Environment		*/
 #define CFG_ENV_SECT_SIZE	0x40000 /* we have BIG sectors only :-(		*/
-#else
-/* Environment in EEPROM */
-#define CFG_ENV_IS_IN_EEPROM	1
-#define CFG_ENV_OFFSET		0
-#define CFG_ENV_SIZE		2048
-#endif
+
 /*-----------------------------------------------------------------------
  * I2C/EEPROM Configuration
  */
@@ -488,6 +495,8 @@
 /* Offset for alternate registers	*/
 #define CFG_ATA_ALT_OFFSET	0x0100
 
+#define CONFIG_SUPPORT_VFAT		/* enable VFAT support */
+
 /*-----------------------------------------------------------------------
  *
  *-----------------------------------------------------------------------
