diff --git a/cli_classic.c b/cli_classic.c
index 5ebc6ea..41d456c 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -458,7 +458,7 @@
 	/* FIXME: Delay calibration should happen in programmer code. */
 	myusec_calibrate_delay();
 
-	if (programmer_init(prog, pparam)) {
+	if (programmer_init(programmer_table[prog], pparam)) {
 		msg_perr("Error: Programmer initialization failed.\n");
 		ret = 1;
 		goto out_shutdown;
diff --git a/flashrom.c b/flashrom.c
index ca271ca..6515b20 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -136,15 +136,15 @@
 	return rc;
 }
 
-int programmer_init(enum programmer prog, const char *param)
+int programmer_init(const struct programmer_entry *prog, const char *param)
 {
 	int ret;
 
-	if (prog >= programmer_table_size) {
+	if (prog == NULL) {
 		msg_perr("Invalid programmer specified!\n");
 		return -1;
 	}
-	programmer = programmer_table[prog];
+	programmer = prog;
 	/* Initialize all programmer specific data. */
 	/* Default to unlimited decode sizes. */
 	max_rom_decode = (const struct decode_sizes) {
diff --git a/libflashrom.c b/libflashrom.c
index 5402978..f8c90e0 100644
--- a/libflashrom.c
+++ b/libflashrom.c
@@ -143,7 +143,7 @@
 		list_programmers_linebreak(0, 80, 0);
 		return 1;
 	}
-	return programmer_init(prog, prog_param);
+	return programmer_init(programmer_table[prog], prog_param);
 }
 
 /**
diff --git a/programmer.h b/programmer.h
index af7d500..ba084a7 100644
--- a/programmer.h
+++ b/programmer.h
@@ -163,7 +163,7 @@
 extern const struct programmer_entry *const programmer_table[];
 extern const size_t programmer_table_size;
 
-int programmer_init(enum programmer prog, const char *param);
+int programmer_init(const struct programmer_entry *prog, const char *param);
 int programmer_shutdown(void);
 
 struct bitbang_spi_master {
