int                                     i;
        static int                              did_version;
        unsigned short                  save1, save2;
+       u8 addr[ETH_ALEN];
 
        PROBE_PRINT(( "Probing for Lance card at mem %#lx io %#lx\n",
                                  (long)memaddr, (long)ioaddr ));
                eth_hw_addr_set(dev, OldRieblDefHwaddr);
                break;
          case NEW_RIEBL:
-               lp->memcpy_f(dev->dev_addr, RIEBL_HWADDR_ADDR, ETH_ALEN);
+               lp->memcpy_f(addr, RIEBL_HWADDR_ADDR, ETH_ALEN);
+               eth_hw_addr_set(dev, addr);
                break;
          case PAM_CARD:
                i = IO->eeprom;
                for( i = 0; i < 6; ++i )
-                       dev->dev_addr[i] =
+                       addr[i] =
                                ((((unsigned short *)MEM)[i*2] & 0x0f) << 4) |
                                ((((unsigned short *)MEM)[i*2+1] & 0x0f));
+               eth_hw_addr_set(dev, addr);
                i = IO->mem;
                break;
        }