diff --git a/programmer.h b/programmer.h
index 303fbc4..51b9c40 100644
--- a/programmer.h
+++ b/programmer.h
@@ -636,8 +636,10 @@
 /* serial.c */
 #ifdef _WIN32
 typedef HANDLE fdtype;
+#define SER_INV_FD	INVALID_HANDLE_VALUE
 #else
 typedef int fdtype;
+#define SER_INV_FD	-1
 #endif
 
 void sp_flush_incoming(void);
diff --git a/serial.c b/serial.c
index 7443a3c..05c7d04 100644
--- a/serial.c
+++ b/serial.c
@@ -115,7 +115,7 @@
 		dev2 = malloc(strlen(dev) + 5);
 		if (!dev2) {
 			msg_perr("Error: Out of memory: %s\n", strerror(errno));
-			return -1;
+			return SER_INV_FD;
 		}
 		strcpy(dev2, "\\\\.\\");
 		strcpy(dev2 + 4, dev);
@@ -126,12 +126,12 @@
 		free(dev2);
 	if (fd == INVALID_HANDLE_VALUE) {
 		msg_perr("Error: cannot open serial port: %s\n", strerror(errno));
-		return -1;
+		return SER_INV_FD;
 	}
 	DCB dcb;
 	if (!GetCommState(fd, &dcb)) {
 		msg_perr("Error: Could not fetch serial port configuration: %s\n", strerror(errno));
-		return -1;
+		return SER_INV_FD;
 	}
 	switch (baud) {
 		case 9600: dcb.BaudRate = CBR_9600; break;
@@ -140,14 +140,14 @@
 		case 57600: dcb.BaudRate = CBR_57600; break;
 		case 115200: dcb.BaudRate = CBR_115200; break;
 		default: msg_perr("Error: Could not set baud rate: %s\n", strerror(errno));
-			 return -1;
+			 return SER_INV_FD;
 	}
 	dcb.ByteSize = 8;
 	dcb.Parity = NOPARITY;
 	dcb.StopBits = ONESTOPBIT;
 	if (!SetCommState(fd, &dcb)) {
 		msg_perr("Error: Could not change serial port configuration: %s\n", strerror(errno));
-		return -1;
+		return SER_INV_FD;
 	}
 	return fd;
 #else
@@ -156,7 +156,7 @@
 	fd = open(dev, O_RDWR | O_NOCTTY | O_NDELAY);
 	if (fd < 0) {
 		msg_perr("Error: cannot open serial port: %s\n", strerror(errno));
-		return -1;
+		return SER_INV_FD;
 	}
 	fcntl(fd, F_SETFL, 0);
 	tcgetattr(fd, &options);
@@ -164,7 +164,7 @@
 		if (sp_baudtable[i].baud == 0) {
 			close(fd);
 			msg_perr("Error: cannot configure for baudrate %d\n", baud);
-			return -1;
+			return SER_INV_FD;
 		}
 		if (sp_baudtable[i].baud == baud) {
 			cfsetispeed(&options, sp_baudtable[i].flag);
