diff --git a/sys/dev/lnc/if_lnc.c b/sys/dev/lnc/if_lnc.c
index e463c4687ab5..c186223d620d 100644
--- a/sys/dev/lnc/if_lnc.c
+++ b/sys/dev/lnc/if_lnc.c
@@ -945,10 +945,10 @@ printf("XXX no address?\n");
 	else
 		lnc_mem = (char *) (sc->trans_ring + NDESC(sc->ntdre));
 
-	lnc_mem = (char *)(((int)lnc_mem + 1) & ~1);
-	sc->init_block = (struct init_block *) ((int) lnc_mem & ~1);
+	lnc_mem = (char *)(((long)lnc_mem + 1) & ~1);
+	sc->init_block = (struct init_block *) ((long) lnc_mem & ~1);
 	lnc_mem = (char *) (sc->init_block + 1);
-	lnc_mem = (char *)(((int)lnc_mem + 7) & ~7);
+	lnc_mem = (char *)(((long)lnc_mem + 7) & ~7);
 
 	/* Initialise pointers to descriptor entries */
 	for (i = 0; i < NDESC(sc->nrdre); i++) {
diff --git a/sys/dev/lnc/if_lncvar.h b/sys/dev/lnc/if_lncvar.h
index 8c76738500f1..50a5a66c40ca 100644
--- a/sys/dev/lnc/if_lncvar.h
+++ b/sys/dev/lnc/if_lncvar.h
@@ -183,7 +183,7 @@ struct nic_info {
 	int ident;         /* Type of card */
 	int ic;            /* Type of ic, Am7990, Am79C960 etc. */
 	int mem_mode;
-	int iobase;
+	long iobase;
 	int mode;          /* Mode setting at initialization */
 };