diff --git a/common/cmd_net.c b/common/cmd_net.c
old mode 100644
new mode 100755
index 2cb2c5d..a815234
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -33,7 +33,7 @@ #if (CONFIG_COMMANDS & CFG_CMD_NET)
 
 extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
 
-static int netboot_common (proto_t, cmd_tbl_t *, int , char *[]);
+extern int netboot_common (proto_t, cmd_tbl_t *, int , char *[]);
 
 int do_bootp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
@@ -151,8 +151,7 @@ #if (CONFIG_COMMANDS & CFG_CMD_SNTP) && 
 #endif
 }
 
-static int
-netboot_common (proto_t proto, cmd_tbl_t *cmdtp, int argc, char *argv[])
+int netboot_common (proto_t proto, cmd_tbl_t *cmdtp, int argc, char *argv[])
 {
 	char *s;
 	int   rcode = 0;
diff --git a/common/exports.c b/common/exports.c
old mode 100644
new mode 100755
index 0cb4396..952226c
--- a/common/exports.c
+++ b/common/exports.c
@@ -12,6 +12,21 @@ unsigned long get_version(void)
 	return XF_VERSION;
 }
 
+/*
+ * xf_func_inc(int) is used to determine whether a function has been compiled 
+ * with u-boot and available for use by a stand alone program . This allows a 
+ * stand alone program to ensure that a function exists before running code with
+ * the an exported function in it. 
+ *
+ * function_no is the number assigned by the enum type of _exports.h
+ * returns 0 if the function is available
+ * returns 1 if the function has not been compiled with u-boot 
+ */
+static int func_inc(int function_no)
+{		
+	return (gd->jt[function_no] == (void *) dummy);
+}
+
 void jumptable_init (void)
 {
 	int i;
@@ -21,19 +36,69 @@ void jumptable_init (void)
 		gd->jt[i] = (void *) dummy;
 
 	gd->jt[XF_get_version] = (void *) get_version;
-	gd->jt[XF_malloc] = (void *) malloc;
-	gd->jt[XF_free] = (void *) free;
+	gd->jt[XF_getc] = (void *) getc;
+	gd->jt[XF_tstc] = (void *) tstc;
+	gd->jt[XF_putc] = (void *) putc;
+	gd->jt[XF_puts] = (void *) puts;
+	gd->jt[XF_ctrlc] = (void *) ctrlc;
+	gd->jt[XF_printf] = (void *) printf;
+	gd->jt[XF_sprintf] = (void *) sprintf;
+	gd->jt[XF_vprintf] = (void *) vprintf;
+	gd->jt[XF_strcmp] = (void *) strcmp;
+	gd->jt[XF_simple_strtoul] = (void *) simple_strtoul;
+	gd->jt[XF_saveenv] = (void *) saveenv;
 	gd->jt[XF_getenv] = (void *) getenv;
 	gd->jt[XF_setenv] = (void *) setenv;
-	gd->jt[XF_get_timer] = (void *) get_timer;
-	gd->jt[XF_simple_strtoul] = (void *) simple_strtoul;
+	gd->jt[XF_malloc] = (void *) malloc;
+	gd->jt[XF_free] = (void *) free;
 	gd->jt[XF_udelay] = (void *) udelay;
+	gd->jt[XF_get_timer] = (void *) get_timer;
+	gd->jt[XF_do_reset] = (void *) do_reset;
+	gd->jt[XF_xf_func_inc] = (void *) func_inc;
+	
 #if defined(CONFIG_I386) || defined(CONFIG_PPC)
 	gd->jt[XF_install_hdlr] = (void *) irq_install_handler;
 	gd->jt[XF_free_hdlr] = (void *) irq_free_handler;
-#endif	/* I386 || PPC */
+#endif
+#if defined (CONFIG_4xx)	|| defined (CONFIG_MPC5xxx) || defined (CONFIG_74xx_7xx) || \
+    defined (CONFIG_74x)	|| defined (CONFIG_75x)	    || defined (CONFIG_74xx)	 || \
+    defined (CONFIG_MPC8220)|| defined (CONFIG_MPC85xx)	|| defined (CONFIG_MPC86xx)	 || \
+    defined (CONFIG_MPC83XX)
+	gd->jt[XF_out8] = (void *) out8;
+	gd->jt[XF_in8] = (void *) in8;
+	gd->jt[XF_in16] = (void *) in16;
+	gd->jt[XF_out16] = (void *) out16;
+	gd->jt[XF_in32] = (void *) in32;
+	gd->jt[XF_out32] = (void *) out32;
+#endif
+#if (CONFIG_COMMANDS & CFG_CMD_NET)
+	gd->jt[XF_netboot_common] = (void *) netboot_common;
+#endif
+	gd->jt[XF_strcmp] = (void *) strcmp;
+#if (CONFIG_COMMANDS & CFG_CMD_NAND)
+	gd->jt[XF_do_nand] = (void *) do_nand;
+#endif
+#if (CONFIG_COMMANDS & CFG_CMD_DATE)
+	gd->jt[XF_rtc_get] = (void *) rtc_get;
+	gd->jt[XF_do_date] = (void *) do_date;
+#endif
 #if (CONFIG_COMMANDS & CFG_CMD_I2C)
 	gd->jt[XF_i2c_write] = (void *) i2c_write;
 	gd->jt[XF_i2c_read] = (void *) i2c_read;
+	gd->jt[XF_i2c_probe] = (void *) i2c_probe;
 #endif	/* CFG_CMD_I2C */
+#if (CONFIG_COMMANDS & CFG_CMD_USB)
+	gd->jt[XF_usb_init] = (void *) usb_init;
+	gd->jt[XF_usb_stop] = (void *) usb_stop;
+#endif
+#if (CONFIG_COMMANDS & CFG_CMD_RUN)
+	gd->jt[XF_do_run] = (void *) do_run;
+#endif
+#if !defined(CFG_NO_FLASH)
+	gd->jt[XF_flash_write] = (void *) flash_write;
+#endif
+#if (CONFIG_COMMANDS & CFG_CMD_FLASH)
+	gd->jt[XF_do_protect] = (void *) do_protect;
+	gd->jt[XF_do_flerase] = (void *) do_flerase;
+#endif
 }
diff --git a/include/_exports.h b/include/_exports.h
old mode 100644
new mode 100755
index 2b8ec3d..8355165
--- a/include/_exports.h
+++ b/include/_exports.h
@@ -15,7 +15,28 @@ EXPORT_FUNC(do_reset)
 EXPORT_FUNC(getenv)
 EXPORT_FUNC(setenv)
 EXPORT_FUNC(simple_strtoul)
-#if (CONFIG_COMMANDS & CFG_CMD_I2C)
+EXPORT_FUNC(xf_func_inc)
+EXPORT_FUNC(ctrlc)
+EXPORT_FUNC(sprintf)
+EXPORT_FUNC(strcmp)
+EXPORT_FUNC(saveenv)
+EXPORT_FUNC(out8)
+EXPORT_FUNC(in8)
+EXPORT_FUNC(in16)
+EXPORT_FUNC(out16)
+EXPORT_FUNC(in32)
+EXPORT_FUNC(out32)
+EXPORT_FUNC(netboot_common)
+EXPORT_FUNC(do_nand)
+EXPORT_FUNC(rtc_get)
+EXPORT_FUNC(do_date)
 EXPORT_FUNC(i2c_write)
 EXPORT_FUNC(i2c_read)
-#endif	/* CFG_CMD_I2C */
+EXPORT_FUNC(i2c_probe)
+EXPORT_FUNC(usb_init)
+EXPORT_FUNC(usb_stop)
+EXPORT_FUNC(do_run)
+EXPORT_FUNC(flash_write)
+EXPORT_FUNC(do_protect)
+EXPORT_FUNC(do_flerase)
+
diff --git a/include/exports.h b/include/exports.h
old mode 100644
new mode 100755
index 8f7f617..5a6a9c5
--- a/include/exports.h
+++ b/include/exports.h
@@ -11,22 +11,43 @@ int  getc(void);
 int  tstc(void);
 void putc(const char);
 void puts(const char*);
+int  ctrlc (void);
 void printf(const char* fmt, ...);
-void install_hdlr(int, interrupt_handler_t*, void*);
-void free_hdlr(int);
+int  sprintf(char * buf, const char *fmt, ...);
+void vprintf(const char *, va_list);
+int strcmp(const char*,const char*);
+unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base);
+int  saveenv(void);	
+char *getenv (char *name);
+void setenv (char *varname, char *varvalue);
 void *malloc(size_t);
 void free(void*);
 void udelay(unsigned long);
 unsigned long get_timer(unsigned long);
-void vprintf(const char *, va_list);
 void do_reset (void);
-unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base);
-char *getenv (char *name);
-void setenv (char *varname, char *varvalue);
-#if (CONFIG_COMMANDS & CFG_CMD_I2C)
+void install_hdlr(int, interrupt_handler_t*, void*);
+void free_hdlr(int);
+unsigned char in8(unsigned int);
+void out8(unsigned int, unsigned char);
+void out16(unsigned int, unsigned short);
+unsigned short in16(unsigned int);
+void out16(unsigned int, unsigned short);
+unsigned long in32(unsigned int);
+void out32(unsigned int, unsigned long);
+int netboot_common(int, void*, int , char*);
+int do_nand (void*, int, int, char*);
+void rtc_get (void*);
+int do_date (void*, int, int, char*);
 int i2c_write (uchar, uint, int , uchar* , int);
 int i2c_read (uchar, uint, int , uchar* , int);
-#endif	/* CFG_CMD_I2C */
+int i2c_probe(uchar);
+int usb_init(void);
+int usb_stop(void);
+int do_run (void*, int, int, char*);
+int	flash_write (char*, ulong, ulong );
+int do_protect(void*, int, int, char*);
+int do_flerase(void*, int, int, char*);
+int xf_func_inc(int);
 
 void app_startup(char **);
 
@@ -40,7 +61,7 @@ #undef EXPORT_FUNC
 	XF_MAX
 };
 
-#define XF_VERSION	3
+#define XF_VERSION	4
 
 #if defined(CONFIG_I386)
 extern gd_t *global_data;
