--- old_u-boot/net/bootp.c 2005-11-23 15:40:52.000000000 +1100 +++ u-boot/net/bootp.c 2005-11-23 15:26:52.000000000 +1100 @@ -121,8 +121,15 @@ NetCopyIP(&NetOurIP, &bp->bp_yiaddr); NetCopyIP(&tmp_ip, &bp->bp_siaddr); - if (tmp_ip != 0) - NetCopyIP(&NetServerIP, &bp->bp_siaddr); + if (tmp_ip != 0) { + + /* check that serverip is empty before setting the value as + ** the DHCP server could be a different machine. + */ + if (getenv("serverip") == NULL) { + NetCopyIP(&NetServerIP, &bp->bp_siaddr); + } + } memcpy (NetServerEther, ((Ethernet_t *)NetRxPkt)->et_src, 6); if (strlen(bp->bp_file) > 0) copy_filename (BootFile, bp->bp_file, sizeof(BootFile));