OK, got it!
In the TCP.LIB, I swapped the comments:
This was commented out:
ath = arpcache_new(hisip, &((eth_Header *)hdrbuf)->source, iface);
This was used:
//ath = arpresolve_start_iface(hisip, iface);
Bad result caused:
if (ath <= 0)
printf("tcp_handler 2: tcp_rst %d %s\n", __LINE__, __FILE__);
tcp_rst(LL, hdrbuf, tp);
If any one understands why then please let me know.