diff -aur AirSnort-0.2.0/src/capture.c AirSnort-0.2.0-patched/src/capture.c
--- AirSnort-0.2.0/src/capture.c	Fri Mar  1 16:45:47 2002
+++ AirSnort-0.2.0-patched/src/capture.c	Tue Mar 19 07:24:35 2002
@@ -254,6 +254,7 @@
    int result = -1;
    int fd;
    struct iwreq ireq;  //for Orinoco
+   int *ptr;
 
    memset(&sniff, 0, sizeof(p80211msg_lnxreq_wlansniff_t));
    sniff.msgcode = DIDmsg_lnxreq_wlansniff;
@@ -279,9 +280,11 @@
       if ( fd == -1 ) {
          return result;
       }
-      ireq.u.data.pointer = (caddr_t) &sniff;   
+      ptr = (int *) ireq.u.name;
+      ptr[0] = 1;
+      ptr[1] = chan;
       strcpy(ireq.ifr_ifrn.ifrn_name, dev);
-      result = ioctl( fd, SIOCDEVPRIVATE + 0x8, &ireq);
+      result = ioctl( fd, SIOCIWFIRSTPRIV + 0x8, &ireq);
       close(fd);
    }
    else {
@@ -304,6 +307,7 @@
    int result = -1;
    int fd;
    struct iwreq ireq;  //for Orinoco
+   int *ptr;
 
    memset(&sniff, 0, sizeof(p80211msg_lnxreq_wlansniff_t));
    sniff.msgcode = DIDmsg_lnxreq_wlansniff;
@@ -329,9 +333,12 @@
       if ( fd == -1 ) {
          return result;
       }
+      ptr = (int *) ireq.u.name;
+      ptr[0] = 0;
+      ptr[1] = 0;
       ireq.u.data.pointer = (caddr_t) &sniff;   
       strcpy(ireq.ifr_ifrn.ifrn_name, dev);
-      result = ioctl( fd, SIOCDEVPRIVATE + 0x8, &ireq);
+      result = ioctl( fd, SIOCIWFIRSTPRIV + 0x8, &ireq);
       close(fd);
    }
    else {
diff -aur AirSnort-0.2.0/src/capture.h AirSnort-0.2.0-patched/src/capture.h
--- AirSnort-0.2.0/src/capture.h	Fri Mar  1 16:45:47 2002
+++ AirSnort-0.2.0-patched/src/capture.h	Thu Mar 14 21:38:04 2002
@@ -39,8 +39,12 @@
   unsigned char *iv;     //pointer to the frame body
 } CaptureRec;
 
+#ifndef SIOCIWFIRSTPRIV
+#define SIOCIWFIRSTPRIV SIOCDEVPRIVATE
+#endif
+
 #define P80211_IOCTL_MAGIC (0x4a2d464dUL)
-#define P80211_IFREQ (SIOCDEVPRIVATE  + 1)
+#define P80211_IFREQ (SIOCIWFIRSTPRIV  + 1)
 #define WLAN_DEVNAMELEN_MAX 16
 
 extern int useOrinoco;
