--- /dev/null
+diff -Naur linux-atm-2.4.1-orig/src/ilmid/atmf_uni.c linux-atm-2.4.1/src/ilmid/atmf_uni.c
+--- linux-atm-2.4.1-orig/src/ilmid/atmf_uni.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/ilmid/atmf_uni.c 2005-08-13 10:22:44.000000000 +0100
+@@ -187,7 +187,7 @@
+ newPrefix->name = alloc_t(AsnOid);
+ newPrefix->name->octs = alloc(varBindName->octetLen);
+ AsnOidCopy(newPrefix->name, varBindName);
+- Q_INSERT_BEFORE((NetPrefixNode *) var->value, newPrefix, prefix);
++ Q_INSERT_BEFORE((*((NetPrefixNode **)&var->value)), newPrefix, prefix);
+ if(atmNetPrefix.octs == NULL)
+ {
+ atmNetPrefix.octetLen = varBindName->octetLen - NETPREFIX_LEN - 2;
+@@ -197,7 +197,7 @@
+ }
+ else if (varbind->value->a.simple->a.number == INVALID && cmp == AsnOidEqual)
+ {
+- Q_REMOVE((NetPrefixNode *) var->value, prefix);
++ Q_REMOVE((*((NetPrefixNode **) &var->value)), prefix);
+ }
+
+ return NOERROR;
+diff -Naur linux-atm-2.4.1-orig/src/lib/sapequal.c linux-atm-2.4.1/src/lib/sapequal.c
+--- linux-atm-2.4.1-orig/src/lib/sapequal.c 2001-09-03 19:41:05.000000000 +0100
++++ linux-atm-2.4.1/src/lib/sapequal.c 2005-02-06 19:24:37.000000000 +0000
+@@ -65,6 +65,7 @@
+ CHECK(l2.itu.window,a.l2.itu.window > b.l2.itu.window);
+ break;
+ default:
++ ;
+ }
+ switch (a.l3_proto) {
+ case ATM_L3_X25:
+@@ -83,6 +84,7 @@
+ if (a.l3.user != b.l3.user) return 0;
+ break;
+ default:
++ ;
+ }
+ return 1;
+ }
+diff -Naur linux-atm-2.4.1-orig/src/maint/atmtcp.c linux-atm-2.4.1/src/maint/atmtcp.c
+--- linux-atm-2.4.1-orig/src/maint/atmtcp.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/maint/atmtcp.c 2005-08-13 10:22:44.000000000 +0100
+@@ -60,7 +60,7 @@
+ static IN *inputs = NULL;
+ static fd_set in_set;
+ static int fds = 0;
+-static int debug = 0;
++int debug = 0;
+ static int links = 0;
+
+
+diff -Naur linux-atm-2.4.1-orig/src/maint/enitune.c linux-atm-2.4.1/src/maint/enitune.c
+--- linux-atm-2.4.1-orig/src/maint/enitune.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/maint/enitune.c 2005-02-06 19:24:37.000000000 +0000
+@@ -44,6 +44,7 @@
+ if (*end || mult.rx <= 100) usage(name);
+ break;
+ default:
++ ;
+ }
+ if (argc != optind+1) usage(name);
+ sioc.number = strtol(argv[optind],&end,0);
+diff -Naur linux-atm-2.4.1-orig/src/mpoad/p_factory.c linux-atm-2.4.1/src/mpoad/p_factory.c
+--- linux-atm-2.4.1-orig/src/mpoad/p_factory.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/mpoad/p_factory.c 2005-08-13 10:22:44.000000000 +0100
+@@ -31,16 +31,17 @@
+ * beginning at location "addr".
+ */
+ uint32_t sum = 0;
++ uint16_t *addr16 = addr;
+
+ while( count > 1 ) {
+ /* This is the inner loop */
+- sum += * ((uint16_t *) addr)++;
++ sum += * addr16++;
+ count -= 2;
+ }
+
+ /* Add left-over byte, if any */
+ if( count > 0 )
+- sum += * (unsigned char *) addr;
++ sum += * (unsigned char *) addr16;
+
+ /* Fold 32-bit sum to 16 bits */
+ while (sum>>16)
+diff -Naur linux-atm-2.4.1-orig/src/qgen/qlib.c linux-atm-2.4.1/src/qgen/qlib.c
+--- linux-atm-2.4.1-orig/src/qgen/qlib.c 2001-09-03 19:41:05.000000000 +0100
++++ linux-atm-2.4.1/src/qgen/qlib.c 2005-08-13 10:22:44.000000000 +0100
+@@ -26,8 +26,6 @@
+ #include "op.h"
+
+
+-static int debug = 0;
+-
+
+ void PREFIX(report)(int severity,const char *msg,...)
+ {
+@@ -830,6 +828,8 @@
+
+ #ifdef STANDALONE
+
++int debug = 0;
++
+ int main(int argc,const char **argv)
+ {
+ unsigned char msg[5000]; /* should be large enough for that */
+diff -Naur linux-atm-2.4.1-orig/src/qgen/qlib.h linux-atm-2.4.1/src/qgen/qlib.h
+--- linux-atm-2.4.1-orig/src/qgen/qlib.h 2001-09-03 19:41:05.000000000 +0100
++++ linux-atm-2.4.1/src/qgen/qlib.h 2005-08-13 10:22:44.000000000 +0100
+@@ -23,7 +23,6 @@
+ #define Q_FATAL -1
+
+
+-extern int q_dump;
+ extern void q_report(int severity,const char *msg,...);
+
+ #ifdef DUMP_MODE
+diff -Naur linux-atm-2.4.1-orig/src/sigd/proto.c linux-atm-2.4.1/src/sigd/proto.c
+--- linux-atm-2.4.1-orig/src/sigd/proto.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/sigd/proto.c 2005-02-06 19:24:37.000000000 +0000
+@@ -259,6 +259,7 @@
+ break;
+ }
+ default:
++ ;
+ }
+ va_end(ap);
+ if ((size = q_close(&dsc)) >= 0) to_signaling(sock->sig,q_buffer,size);
+@@ -288,6 +289,7 @@
+ }
+ break;
+ default:
++ ;
+ }
+ va_end(ap);
+ }
+diff -Naur linux-atm-2.4.1-orig/src/switch/debug/debug.c linux-atm-2.4.1/src/switch/debug/debug.c
+--- linux-atm-2.4.1-orig/src/switch/debug/debug.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/switch/debug/debug.c 2005-08-13 10:22:44.000000000 +0100
+@@ -18,7 +18,7 @@
+ #define COMPONENT "FAB(debug)"
+
+
+-#define PRV(call) ((FAB *) (call)->fab)
++#define PRV(call) (*((FAB **) &(call)->fab))
+
+
+ typedef struct _fab {
+diff -Naur linux-atm-2.4.1-orig/src/switch/tcp/tcpsw.c linux-atm-2.4.1/src/switch/tcp/tcpsw.c
+--- linux-atm-2.4.1-orig/src/switch/tcp/tcpsw.c 2001-09-03 19:41:06.000000000 +0100
++++ linux-atm-2.4.1/src/switch/tcp/tcpsw.c 2005-08-13 10:22:44.000000000 +0100
+@@ -27,7 +27,7 @@
+
+ #define COMPONENT "FAB(tcp)"
+
+-#define PRV(call) ((FAB *) (call)->fab)
++#define PRV(call) (*((FAB **) &(call)->fab))
+
+ #define MAX_VCI 1024
+
--- /dev/null
+--- linux-atm-2.4.1~/src/arpd/arp.c 2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1/src/arpd/arp.c 2007-07-19 01:38:37.000000000 +0200
+@@ -16,6 +16,7 @@
+ #include <sys/socket.h> /* for linux/if_arp.h */
+ #include <netinet/in.h> /* for ntohs, etc. */
+ #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */
++#include <linux/types.h>
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <atm.h>
+diff -urNad linux-atm-2.4.1~/src/arpd/io.c linux-atm-2.4.1/src/arpd/io.c
+--- linux-atm-2.4.1~/src/arpd/io.c 2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1/src/arpd/io.c 2007-07-19 01:38:37.000000000 +0200
+@@ -19,6 +19,7 @@
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <atm.h>
++#include <linux/types.h>
+ #include <linux/atmclip.h> /* for CLIP_DEFAULT_IDLETIMER */
+ #include <linux/atmarp.h>
+ #define _LINUX_NETDEVICE_H /* glibc2 */
+diff -urNad linux-atm-2.4.1~/src/arpd/itf.c linux-atm-2.4.1/src/arpd/itf.c
+--- linux-atm-2.4.1~/src/arpd/itf.c 2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1/src/arpd/itf.c 2007-07-19 01:38:37.000000000 +0200
+@@ -10,6 +10,7 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <linux/types.h>
+ #include <linux/atmclip.h>
+ #include <sys/socket.h>
+ #define _LINUX_NETDEVICE_H /* glibc2 */
+diff -urNad linux-atm-2.4.1~/src/mpoad/io.c linux-atm-2.4.1/src/mpoad/io.c
+--- linux-atm-2.4.1~/src/mpoad/io.c 2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/io.c 2007-07-19 01:38:37.000000000 +0200
+@@ -19,6 +19,7 @@
+ _syscall3(int,poll,struct pollfd *,ufds,unsigned int,nfds,int,timeout);
+ #endif
+ #include <atm.h>
++#include <linux/types.h>
+ #include <linux/atmioc.h>
+ #include <linux/atmmpc.h>
+ #include <sys/types.h>
+diff -urNad linux-atm-2.4.1~/src/mpoad/k_interf.c linux-atm-2.4.1/src/mpoad/k_interf.c
+--- linux-atm-2.4.1~/src/mpoad/k_interf.c 2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/k_interf.c 2007-07-19 01:38:37.000000000 +0200
+@@ -9,6 +9,7 @@
+ #include <sys/param.h> /* for OPEN_MAX */
+ #include <stdint.h>
+ #include <netinet/in.h> /* for ntohl() */
++#include <linux/types.h>
+ #include <linux/atmmpc.h>
+ #include <atm.h>
+ #include "k_interf.h"
+diff -urNad linux-atm-2.4.1~/src/mpoad/lecs.c linux-atm-2.4.1/src/mpoad/lecs.c
+--- linux-atm-2.4.1~/src/mpoad/lecs.c 2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/lecs.c 2007-07-19 01:39:04.000000000 +0200
+@@ -11,6 +11,7 @@
+ #include <errno.h>
+ #include <atm.h>
+ #include <atmsap.h>
++#include <linux/types.h>
+ #include <linux/atmmpc.h> /* for MPOA Device type TLV */
+ #include "lecs.h"
+ #include "k_interf.h"
+diff -urNad linux-atm-2.4.1~/src/mpoad/main.c linux-atm-2.4.1/src/mpoad/main.c
+--- linux-atm-2.4.1~/src/mpoad/main.c 2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/main.c 2007-07-19 01:38:37.000000000 +0200
+@@ -9,6 +9,7 @@
+ #include <time.h>
+ #include <sys/ioctl.h>
+ #include <atm.h>
++#include <linux/types.h>
+ #include <linux/atmdev.h>
+ #include <linux/atmmpc.h>
+ #include <sys/socket.h>
+diff -urNad linux-atm-2.4.1~/src/mpoad/p_factory.c linux-atm-2.4.1/src/mpoad/p_factory.c
+--- linux-atm-2.4.1~/src/mpoad/p_factory.c 2007-07-19 01:22:42.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/p_factory.c 2007-07-19 01:38:37.000000000 +0200
+@@ -5,6 +5,7 @@
+ #include <sys/types.h>
+ #include <stdint.h>
+ #include <netinet/in.h>
++#include <linux/types.h>
+ #include <linux/atmmpc.h>
+ #include <sys/socket.h>
+ #include <unistd.h>
+diff -urNad linux-atm-2.4.1~/src/mpoad/p_recogn.c linux-atm-2.4.1/src/mpoad/p_recogn.c
+--- linux-atm-2.4.1~/src/mpoad/p_recogn.c 2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1/src/mpoad/p_recogn.c 2007-07-19 01:39:12.000000000 +0200
+@@ -7,6 +7,7 @@
+ #include <stdlib.h>
+ #include <sys/time.h>
+ #include <atm.h>
++#include <linux/types.h>
+ #include <linux/atmmpc.h>
+ #include <netinet/in.h>
+ #include <limits.h> /* For UINT_MAX */