diff --git a/Makefile b/Makefile
index 881c8f2..17d1cf1 100644
--- a/Makefile
+++ b/Makefile
@@ -50,7 +50,7 @@
 	flashrom.o w39v080fa.o sharplhf00l04.o w29ee011.o spi.o it87spi.o \
 	ichspi.o w39v040c.o sb600spi.o wbsio_spi.o m29f002.o internal.o \
 	dummyflasher.o pcidev.o nic3com.o satasii.o ft2232_spi.o \
-	print.o
+	print.o drkaiser.o
 
 all: pciutils features dep $(PROGRAM)
 
diff --git a/flash.h b/flash.h
index d3e2e30..8752c4a 100644
--- a/flash.h
+++ b/flash.h
@@ -84,6 +84,7 @@
 	PROGRAMMER_INTERNAL,
 	PROGRAMMER_DUMMY,
 	PROGRAMMER_NIC3COM,
+	PROGRAMMER_DRKAISER,
 	PROGRAMMER_SATASII,
 	PROGRAMMER_IT87SPI,
 #if FT2232_SPI_SUPPORT == 1
@@ -281,8 +282,8 @@
 	const char *vendor_name;
 	const char *device_name;
 };
-uint32_t pcidev_validate(struct pci_dev *dev, struct pcidev_status *devs);
-uint32_t pcidev_init(uint16_t vendor_id, struct pcidev_status *devs, char *pcidev_bdf);
+uint32_t pcidev_validate(struct pci_dev *dev, uint32_t bar, struct pcidev_status *devs);
+uint32_t pcidev_init(uint16_t vendor_id, uint32_t bar, struct pcidev_status *devs, char *pcidev_bdf);
 
 /* print.c */
 char *flashbuses_to_text(enum chipbustype bustype);
@@ -387,6 +388,13 @@
 uint8_t nic3com_chip_readb(const chipaddr addr);
 extern struct pcidev_status nics_3com[];
 
+/* drkaiser.c */
+int drkaiser_init(void);
+int drkaiser_shutdown(void);
+void drkaiser_chip_writeb(uint8_t val, chipaddr addr);
+uint8_t drkaiser_chip_readb(const chipaddr addr);
+extern struct pcidev_status drkaiser_pcidev[];
+
 /* satasii.c */
 int satasii_init(void);
 int satasii_shutdown(void);
diff --git a/flashrom.8 b/flashrom.8
index 1324854..6ceeded 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -140,6 +140,8 @@
 .sp
 .BR "* nic3com" " (for flash ROMs on 3COM network cards)"
 .sp
+.BR "* drkaiser" " (for flash ROMs on Dr. Kaiser PC-Waechter PCI cards)"
+.sp
 .BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controllers)"
 .sp
 .BR "* it87spi" " (for flash ROMs behind an ITE IT87xx Super I/O LPC/SPI translation unit)"
diff --git a/flashrom.c b/flashrom.c
index fc80301..6da6741 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -89,6 +89,23 @@
 	},
 
 	{
+		.name			= "drkaiser",
+		.init			= drkaiser_init,
+		.shutdown		= drkaiser_shutdown,
+		.map_flash_region	= fallback_map,
+		.unmap_flash_region	= fallback_unmap,
+		.chip_readb		= drkaiser_chip_readb,
+		.chip_readw		= fallback_chip_readw,
+		.chip_readl		= fallback_chip_readl,
+		.chip_readn		= fallback_chip_readn,
+		.chip_writeb		= drkaiser_chip_writeb,
+		.chip_writew		= fallback_chip_writew,
+		.chip_writel		= fallback_chip_writel,
+		.chip_writen		= fallback_chip_writen,
+		.delay			= internal_delay,
+	},
+
+	{
 		.name			= "satasii",
 		.init			= satasii_init,
 		.shutdown		= satasii_shutdown,
@@ -747,6 +764,7 @@
 		printf("\nSupported PCI devices flashrom can use "
 		       "as programmer:\n\n");
 		print_supported_pcidevs(nics_3com);
+		print_supported_pcidevs(drkaiser_pcidev);
 		print_supported_pcidevs(satas_sii);
 		exit(0);
 	}
diff --git a/nic3com.c b/nic3com.c
index 075e760..a4878d2 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -58,7 +58,8 @@
 {
 	get_io_perms();
 
-	io_base_addr = pcidev_init(PCI_VENDOR_ID_3COM, nics_3com, programmer_param);
+	io_base_addr = pcidev_init(PCI_VENDOR_ID_3COM, PCI_BASE_ADDRESS_0,
+				   nics_3com, programmer_param);
 	id = pcidev_dev->device_id;
 
 	/* 3COM 3C90xB cards need a special fixup. */
diff --git a/pcidev.c b/pcidev.c
index 580ebae..3ad9db5 100644
--- a/pcidev.c
+++ b/pcidev.c
@@ -28,7 +28,7 @@
 struct pci_filter filter;
 struct pci_dev *pcidev_dev = NULL;
 
-uint32_t pcidev_validate(struct pci_dev *dev, struct pcidev_status *devs)
+uint32_t pcidev_validate(struct pci_dev *dev, uint32_t bar, struct pcidev_status *devs)
 {
 	int i;
 	uint32_t addr;
@@ -37,9 +37,9 @@
 		if (dev->device_id != devs[i].device_id)
 			continue;
 
-		/* Don't use dev->base_addr[0], won't work on older libpci. */
-		addr = pci_read_long(dev, PCI_BASE_ADDRESS_0) & ~0x03;
-
+		/* Don't use dev->base_addr[x] (as value for 'bar'), won't work on older libpci. */
+		addr = pci_read_long(dev, bar) & ~0x03;
+		
 		printf("Found \"%s %s\" (%04x:%04x, BDF %02x:%02x.%x).\n",
 		       devs[i].vendor_name, devs[i].device_name, dev->vendor_id,
 		       dev->device_id, dev->bus, dev->dev, dev->func);
@@ -57,7 +57,7 @@
 	return 0;
 }
 
-uint32_t pcidev_init(uint16_t vendor_id, struct pcidev_status *devs, char *pcidev_bdf)
+uint32_t pcidev_init(uint16_t vendor_id, uint32_t bar, struct pcidev_status *devs, char *pcidev_bdf)
 {
 	struct pci_dev *dev;
 	char *msg = NULL;
@@ -80,7 +80,7 @@
 
 	for (dev = pacc->devices; dev; dev = dev->next) {
 		if (pci_filter_match(&filter, dev)) {
-			if ((addr = pcidev_validate(dev, devs)) != 0) {
+			if ((addr = pcidev_validate(dev, bar, devs)) != 0) {
 				curaddr = addr;
 				pcidev_dev = dev;
 				found++;
diff --git a/satasii.c b/satasii.c
index 2564436..79d4325 100644
--- a/satasii.c
+++ b/satasii.c
@@ -47,7 +47,8 @@
 
 	get_io_perms();
 
-	pcidev_init(PCI_VENDOR_ID_SII, satas_sii, programmer_param);
+	pcidev_init(PCI_VENDOR_ID_SII, PCI_BASE_ADDRESS_0, satas_sii,
+		    programmer_param);
 	id = pcidev_dev->device_id;
 
 	if ((id == 0x3132) || (id == 0x3124)) {
