diff -ru arpwatch-2.1a13/linux-include/netinet/if_ether.h
arpwatch-2.1a13.ok/linux-include/netinet/if_ether.h
--- arpwatch-2.1a13/linux-include/netinet/if_ether.h 1996-11-29
11:33:14.000000000 +0100
+++ arpwatch-2.1a13.ok/linux-include/netinet/if_ether.h 2008-07-09
23:58:00.000000000 +0200
@@ -49,7 +49,7 @@
u_char ether_dhost[6];
u_char ether_shost[6];
u_short ether_type;
-};
+} __attribute__((__packed__));
#define ETHERTYPE_PUP 0x0200 /* PUP protocol */
#define ETHERTYPE_IP 0x0800 /* IP protocol */
It seems that "struct ether_header" was 2 bytes too long, and with
attribute packed it works fine on my NSLU2.

