Hi Mark,
Forgive my ignorance. In trying to debug the issue, I'm seeing that the case IP_ICMP (even under ping attempts) in "Ethernet.c" is never getting executed (in fnTaskEthernet). However, when I launch a ping from the local PC, the fnHandleIP (ip.c) routine does get entered. I don't understand how your modification addresses the issue though. That is, doesn't the modification set the return value of fnHandleIP to "zero", and therefore, the switch statement in Ethernet.c won't get evaluated (because of the if statement)?
if ((usIPLength = fnHandleIP(&rx_frame, &usTotalLength)) != 0)
I'm not even sure I'm chasing the right ghost. I'm having the exact same problem on my work PC (which I could have sworn worked some time ago), and my home PC. The common thread with those two is that it uses a Broadcom ethernet driver, which I had to upgrade some months ago because it couldn't keep a stable connection to my switch..... I'm not sure if the NIC has anything to do with it or not.[/s]
Also, perhaps it may be good for me to get the latest revision of uTasker, so that all the updates are implemented. At least that way I can ensure that a known good version (yours!) is working.....