diff --git a/serial.c b/serial.c
index 72f9ef6..cfc9b1e 100644
--- a/serial.c
+++ b/serial.c
@@ -179,6 +179,7 @@
 	}
 	msg_pdbg("Baud rate is %ld.\n", dcb.BaudRate);
 #else
+	int custom_baud = (baud >= 0 && use_custom_baud(baud, sp_baudtable));
 	struct termios wanted, observed;
 	if (tcgetattr(fd, &observed) != 0) {
 		msg_perr_strerror("Could not fetch original serial port configuration: ");
@@ -186,8 +187,8 @@
 	}
 	wanted = observed;
 	if (baud >= 0) {
-		if (use_custom_baud(baud, sp_baudtable)) {
-			if (set_custom_baudrate(fd, baud)) {
+		if (custom_baud) {
+			if (set_custom_baudrate(fd, baud, BEFORE_FLAGS, NULL)) {
 				msg_perr_strerror("Could not set custom baudrate: ");
 				return 1;
 			}
@@ -198,7 +199,6 @@
 				msg_perr_strerror("Could not fetch serial port configuration: ");
 				return 1;
 			}
-			msg_pdbg("Using custom baud rate.\n");
 		} else {
 			const struct baudentry *entry = round_baud(baud);
 			if (cfsetispeed(&wanted, entry->flag) != 0 || cfsetospeed(&wanted, entry->flag) != 0) {
@@ -212,6 +212,10 @@
 	wanted.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG | IEXTEN);
 	wanted.c_iflag &= ~(IXON | IXOFF | IXANY | ICRNL | IGNCR | INLCR);
 	wanted.c_oflag &= ~OPOST;
+	if (custom_baud && set_custom_baudrate(fd, baud, WITH_FLAGS, &wanted)) {
+		msg_perr_strerror("Could not set custom baudrate: ");
+		return 1;
+	}
 	if (tcsetattr(fd, TCSANOW, &wanted) != 0) {
 		msg_perr_strerror("Could not change serial port configuration: ");
 		return 1;
@@ -236,6 +240,13 @@
 			 (long)observed.c_oflag, (long)wanted.c_oflag
 			);
 	}
+	if (custom_baud) {
+		if (set_custom_baudrate(fd, baud, AFTER_FLAGS, &wanted)) {
+			msg_perr_strerror("Could not set custom baudrate: ");
+			return 1;
+		}
+		msg_pdbg("Using custom baud rate.\n");
+	}
 	if (cfgetispeed(&observed) != cfgetispeed(&wanted) ||
 	    cfgetospeed(&observed) != cfgetospeed(&wanted)) {
 		msg_pwarn("Could not set baud rates exactly.\n");
