--- /dev/null
+diff -up net-tools-1.60/ifconfig.c.IA64 net-tools-1.60/ifconfig.c
+--- net-tools-1.60/ifconfig.c.IA64 2010-01-02 11:35:39.000000000 +0100
++++ net-tools-1.60/ifconfig.c 2010-01-02 11:35:39.000000000 +0100
+@@ -894,7 +894,8 @@ int main(int argc, char **argv)
+ continue;
+ }
+
+- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
++ memset(&ip, 0, sizeof(unsigned long));
++ memcpy(&ip, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr));
+
+ if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
+ fprintf(stderr, _("Interface %s not initialized\n"),
+diff -up net-tools-1.60/lib/interface.c.IA64 net-tools-1.60/lib/interface.c
+--- net-tools-1.60/lib/interface.c.IA64 2010-01-02 11:35:39.000000000 +0100
++++ net-tools-1.60/lib/interface.c 2010-01-02 12:03:05.000000000 +0100
+@@ -491,14 +491,14 @@ int if_fetch(struct interface *ife)
+ if (ioctl(skfd, SIOCGOUTFILL, &ifr) < 0)
+ ife->outfill = 0;
+ else
+- ife->outfill = (unsigned int) ifr.ifr_data;
++ ife->outfill = (unsigned long) ifr.ifr_data;
+ #endif
+ #ifdef SIOCGKEEPALIVE
+ strcpy(ifr.ifr_name, ifname);
+ if (ioctl(skfd, SIOCGKEEPALIVE, &ifr) < 0)
+ ife->keepalive = 0;
+ else
+- ife->keepalive = (unsigned int) ifr.ifr_data;
++ ife->keepalive = (unsigned long) ifr.ifr_data;
+ #endif
+ }
+ #endif