diff -pur aircrack-2.3/linux/airodump.c aircrack-2.3-kees/linux/airodump.c
--- aircrack-2.3/linux/airodump.c	2005-08-28 07:16:20.000000000 -0700
+++ aircrack-2.3-kees/linux/airodump.c	2006-07-27 17:16:02.000000000 -0700
@@ -1080,7 +1080,9 @@ void set_channel( char *interface, int c
     wait( NULL );
 }
 
+int bg_chan_max = 12;
 int bg_chans[] = { 7, 1, 5, 10, 13, 2, 6, 11, 12, 3, 8, 4, 9, 0 };
+int do_chans[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 
 char usage[] =
 
@@ -1118,6 +1120,7 @@ int main( int argc, char *argv[] )
 
     unsigned char *buffer;
     unsigned char *h80211;
+    char *chanstr;
 
     struct pcap_file_header pfh_in;
     struct pcap_pkthdr pkh_in;
@@ -1147,7 +1150,36 @@ int main( int argc, char *argv[] )
         return( 1 );
     }
 
-    channel  = atoi( argv[3] );
+    if ( strchr( argv[3], ',' ) )
+    {
+        /* step through each comma-separated element */
+        for ( chanstr = argv[3]; chanstr; chanstr = strchr( chanstr, ',' ) )
+        {
+            int element;
+
+            /* skip the comma */
+            if (chanstr[0]==',') chanstr++;
+
+            element = atoi(chanstr);
+            if (element > 0 && element <= bg_chan_max )
+            {
+                /* save valid channel selection */
+                do_chans[channel++]=element;
+            }
+        }
+        channel = 0;
+    }
+
+    /* no channel list seen, so load channel directly */
+    if ( do_chans[0] == 0 )
+    {
+        channel  = atoi( argv[3] );
+        /* load full channel list if no channel found on cmdline */
+        if ( channel == 0 )
+        {
+            memcpy( do_chans, bg_chans, sizeof(bg_chans) );
+        }
+    }
 
     if( argc == 5 )
         ivs_only = atoi( argv[4] );
@@ -1324,9 +1356,9 @@ skip_iwpriv:
 
                 while( getppid() != 1 )
                 {
-                    channel = bg_chans[ch_idx++];
+                    channel = do_chans[ch_idx++];
 
-                    if( bg_chans[ch_idx] == 0 ) 
+                    if( do_chans[ch_idx] == 0 ) 
                         ch_idx = 0;
 
                     set_channel( argv[1], channel );
