struct cops_local
 {
-        struct net_device_stats stats;
         int board;                     /* Holds what board type is. */
        int nodeid;                     /* Set to 1 once have nodeid. */
         unsigned char node_acquire;    /* Node ID when acquired. */
 static void set_multicast_list (struct net_device *dev);
 static int  cops_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
 static int  cops_close (struct net_device *dev);
-static struct net_device_stats *cops_get_stats (struct net_device *dev);
 
 static void cleanup_card(struct net_device *dev)
 {
        dev->tx_timeout         = cops_timeout;
        dev->watchdog_timeo     = HZ * 2;
 
-        dev->get_stats          = cops_get_stats;
        dev->open               = cops_open;
         dev->stop               = cops_close;
         dev->do_ioctl           = cops_ioctl;
         {
                 printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n",
                        dev->name);
-                lp->stats.rx_dropped++;
+                dev->stats.rx_dropped++;
                 while(pkt_len--)        /* Discard packet */
                         inb(ioaddr);
                 spin_unlock_irqrestore(&lp->lock, flags);
         {
                printk(KERN_WARNING "%s: Bad packet length of %d bytes.\n", 
                        dev->name, pkt_len);
-                lp->stats.tx_errors++;
+                dev->stats.tx_errors++;
                 dev_kfree_skb_any(skb);
                 return;
         }
         if(rsp_type != LAP_RESPONSE)
         {
                 printk(KERN_WARNING "%s: Bad packet type %d.\n", dev->name, rsp_type);
-                lp->stats.tx_errors++;
+                dev->stats.tx_errors++;
                 dev_kfree_skb_any(skb);
                 return;
         }
         skb_reset_transport_header(skb);    /* Point to data (Skip header). */
 
         /* Update the counters. */
-        lp->stats.rx_packets++;
-        lp->stats.rx_bytes += skb->len;
+        dev->stats.rx_packets++;
+        dev->stats.rx_bytes += skb->len;
 
         /* Send packet to a higher place. */
         netif_rx(skb);
         struct cops_local *lp = netdev_priv(dev);
         int ioaddr = dev->base_addr;
 
-       lp->stats.tx_errors++;
+       dev->stats.tx_errors++;
         if(lp->board==TANGENT)
         {
                if((inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
        spin_unlock_irqrestore(&lp->lock, flags);       /* Restore interrupts. */
 
        /* Done sending packet, update counters and cleanup. */
-       lp->stats.tx_packets++;
-       lp->stats.tx_bytes += skb->len;
+       dev->stats.tx_packets++;
+       dev->stats.tx_bytes += skb->len;
        dev->trans_start = jiffies;
        dev_kfree_skb (skb);
         return 0;
         return 0;
 }
 
-/*
- *      Get the current statistics.
- *      This may be called with the card open or closed.
- */
-static struct net_device_stats *cops_get_stats(struct net_device *dev)
-{
-        struct cops_local *lp = netdev_priv(dev);
-        return &lp->stats;
-}
 
 #ifdef MODULE
 static struct net_device *cops_dev;