diff --git a/buspirate_spi.c b/buspirate_spi.c
index 55d4133..d2ebc75 100644
--- a/buspirate_spi.c
+++ b/buspirate_spi.c
@@ -201,14 +201,14 @@
 
 int buspirate_spi_init(void)
 {
-	char *dev = NULL;
-	char *speed = NULL;
 	char *tmp;
+	char *dev;
+	int i;
 	unsigned int fw_version_major = 0;
 	unsigned int fw_version_minor = 0;
 	int spispeed = 0x7;
 	int ret = 0;
-	int i;
+	int pullup = 0;
 
 	dev = extract_programmer_param("dev");
 	if (dev && !strlen(dev)) {
@@ -220,18 +220,29 @@
 		return 1;
 	}
 
-	speed = extract_programmer_param("spispeed");
-	if (speed) {
-		for (i = 0; spispeeds[i].name; i++)
-			if (!strncasecmp(spispeeds[i].name, speed,
-			    strlen(spispeeds[i].name))) {
+	tmp = extract_programmer_param("spispeed");
+	if (tmp) {
+		for (i = 0; spispeeds[i].name; i++) {
+			if (!strncasecmp(spispeeds[i].name, tmp, strlen(spispeeds[i].name))) {
 				spispeed = spispeeds[i].speed;
 				break;
 			}
+		}
 		if (!spispeeds[i].name)
 			msg_perr("Invalid SPI speed, using default.\n");
 	}
-	free(speed);
+	free(tmp);
+
+	tmp = extract_programmer_param("pullups");
+	if (tmp) {
+		if (strcasecmp("on", tmp) == 0)
+			pullup = 1;
+		else if (strcasecmp("off", tmp) == 0)
+			; // ignore
+		else
+			msg_perr("Invalid pullups state, not using them.\n");
+	}
+	free(tmp);
 
 	/* Default buffer size is 19: 16 bytes data, 3 bytes control. */
 #define DEFAULT_BUFSIZE (16 + 3)
@@ -395,12 +406,16 @@
 	}
 
 	/* Initial setup (SPI peripherals config): Enable power, CS high, AUX */
-	bp_commbuf[0] = 0x40 | 0xb;
+	bp_commbuf[0] = 0x40 | 0x0b;
+	if (pullup == 1) {
+		bp_commbuf[0] |= (1 << 2);
+		msg_pdbg("Enabling pull-up resistors.\n");
+	}
 	ret = buspirate_sendrecv(bp_commbuf, 1, 1);
 	if (ret)
 		return 1;
 	if (bp_commbuf[0] != 0x01) {
-		msg_perr("Protocol error while setting power/CS/AUX!\n");
+		msg_perr("Protocol error while setting power/CS/AUX(/Pull-up resistors)!\n");
 		return 1;
 	}
 
diff --git a/flashrom.8 b/flashrom.8
index 102bd62..90afced 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -637,6 +637,20 @@
 can be
 .BR 30k ", " 125k ", " 250k ", " 1M ", " 2M ", " 2.6M ", " 4M " or " 8M
 (in Hz). The default is the maximum frequency of 8 MHz.
+.sp
+An optional pullups parameter specifies the use of the Bus Pirate internal pull-up resistors. This may be
+needed if you are working with a flash ROM chip that you have physically removed from the board. Syntax is
+.sp
+.B "  flashrom -p buspirate_spi:pullups=state"
+.sp
+where
+.B state
+can be
+.BR on " or " off .
+More information about the Bus Pirate pull-up resistors and their purpose is available at
+.nh
+.BR "http://dangerousprototypes.com/docs/Practical_guide_to_Bus_Pirate_pull-up_resistors " .
+Only the external supply voltage (Vpu) is supported as of this writing.
 .SS
 .BR "dediprog " programmer
 An optional
