diff --git a/atahpt.c b/atahpt.c
index 242e14a..edffa3b 100644
--- a/atahpt.c
+++ b/atahpt.c
@@ -33,6 +33,8 @@
 
 #define PCI_VENDOR_ID_HPT	0x1103
 
+static uint32_t io_base_addr = 0;
+
 const struct dev_entry ata_hpt[] = {
 	{0x1103, 0x0004, NT, "Highpoint", "HPT366/368/370/370A/372/372N"},
 	{0x1103, 0x0005, NT, "Highpoint", "HPT372A/372N"},
diff --git a/gfxnvidia.c b/gfxnvidia.c
index d3ee14e..2a5c7ae 100644
--- a/gfxnvidia.c
+++ b/gfxnvidia.c
@@ -89,7 +89,7 @@
 	if (!dev)
 		return 1;
 
-	io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
+	uint32_t io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
 	if (!io_base_addr)
 		return 1;
 
diff --git a/it8212.c b/it8212.c
index f68121a..4d1c403 100644
--- a/it8212.c
+++ b/it8212.c
@@ -59,7 +59,7 @@
 		return 1;
 
 	/* Bit 0 is address decode enable, 17-31 the base address, everything else reserved/zero. */
-	io_base_addr = pcidev_readbar(dev, PCI_ROM_ADDRESS) & 0xFFFFFFFE;
+	uint32_t io_base_addr = pcidev_readbar(dev, PCI_ROM_ADDRESS) & 0xFFFFFFFE;
 	if (!io_base_addr)
 		return 1;
 
diff --git a/nic3com.c b/nic3com.c
index 27e28c7..145554d 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -33,6 +33,7 @@
 
 #define PCI_VENDOR_ID_3COM	0x10b7
 
+static uint32_t io_base_addr = 0;
 static uint32_t internal_conf;
 static uint16_t id;
 
diff --git a/nicintel_spi.c b/nicintel_spi.c
index 1522c9b..25bfa8f 100644
--- a/nicintel_spi.c
+++ b/nicintel_spi.c
@@ -179,7 +179,7 @@
 	if (!dev)
 		return 1;
 
-	io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
+	uint32_t io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
 	if (!io_base_addr)
 		return 1;
 
diff --git a/nicnatsemi.c b/nicnatsemi.c
index cb8da6d..acefddb 100644
--- a/nicnatsemi.c
+++ b/nicnatsemi.c
@@ -30,6 +30,7 @@
 #define BOOT_ROM_ADDR		0x50
 #define BOOT_ROM_DATA		0x54
 
+static uint32_t io_base_addr = 0;
 const struct dev_entry nics_natsemi[] = {
 	{0x100b, 0x0020, NT, "National Semiconductor", "DP83815/DP83816"},
 	{0x100b, 0x0022, NT, "National Semiconductor", "DP83820"},
diff --git a/nicrealtek.c b/nicrealtek.c
index 02fbd39..4a440ea 100644
--- a/nicrealtek.c
+++ b/nicrealtek.c
@@ -28,6 +28,7 @@
 #define PCI_VENDOR_ID_REALTEK	0x10ec
 #define PCI_VENDOR_ID_SMC1211	0x1113
 
+static uint32_t io_base_addr = 0;
 static int bios_rom_addr, bios_rom_data;
 
 const struct dev_entry nics_realtek[] = {
diff --git a/ogp_spi.c b/ogp_spi.c
index 23431d1..a624dfd 100644
--- a/ogp_spi.c
+++ b/ogp_spi.c
@@ -132,7 +132,7 @@
 	if (!dev)
 		return 1;
 
-	io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
+	uint32_t io_base_addr = pcidev_readbar(dev, PCI_BASE_ADDRESS_0);
 	if (!io_base_addr)
 		return 1;
 
diff --git a/pcidev.c b/pcidev.c
index 3a3f77c..2c78063 100644
--- a/pcidev.c
+++ b/pcidev.c
@@ -25,7 +25,6 @@
 #include "programmer.h"
 #include "hwaccess.h"
 
-uint32_t io_base_addr;
 struct pci_access *pacc;
 
 enum pci_bartype {
diff --git a/programmer.h b/programmer.h
index 3ea014c..d299656 100644
--- a/programmer.h
+++ b/programmer.h
@@ -173,8 +173,7 @@
 struct pci_dev;
 
 /* pcidev.c */
-// FIXME: These need to be local, not global
-extern uint32_t io_base_addr;
+// FIXME: This needs to be local, not global(?)
 extern struct pci_access *pacc;
 int pci_init_common(void);
 uintptr_t pcidev_readbar(struct pci_dev *dev, int bar);
