diff --git a/board/esd/common/cmd_loadpci.c b/board/esd/common/cmd_loadpci.c
index 803179a47238c2f34ef563280f12dbc4221be3f3..95d18911c3dc366c0e415b1a30ec2b5b76f09752 100644
--- a/board/esd/common/cmd_loadpci.c
+++ b/board/esd/common/cmd_loadpci.c
@@ -12,9 +12,6 @@
 #endif
 
 #if defined(CONFIG_CMD_BSP)
-
-extern int do_source (cmd_tbl_t *, int, int, char *[]);
-
 #define ADDRMASK 0xfffff000
 
 /*
@@ -27,7 +24,6 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	int count2 = 0;
 	char addr[16];
 	char str[] = "\\|/-";
-	char *local_args[2];
 	u32 la, ptm1la;
 
 #if defined(CONFIG_440)
@@ -84,9 +80,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			 * Boot image via "source" command
 			 */
 			printf("executing script at addr 0x%s ...\n", addr);
-			local_args[0] = addr;
-			local_args[1] = NULL;
-			do_source(cmdtp, 0, 1, local_args);
+			source(la, NULL);
 			break;
 
 		case 2: