diff --git a/src/ipaccess/abisip-find.c b/src/ipaccess/abisip-find.c
index a414d16..4bba8a3 100644
--- a/src/ipaccess/abisip-find.c
+++ b/src/ipaccess/abisip-find.c
@@ -406,7 +406,7 @@
 	if (flags & OSMO_FD_READ)
 		return read_response(bfd->fd);
 	if (flags & OSMO_FD_WRITE) {
-		bfd->when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(bfd);
 		return bcast_find(bfd->fd);
 	}
 	return 0;
@@ -418,7 +418,7 @@
 {
 	struct osmo_fd *bfd = _data;
 
-	bfd->when |= OSMO_FD_WRITE;
+	osmo_fd_write_enable(bfd);
 
 	base_stations_bump(false);
 
diff --git a/src/ipaccess/ipaccess-proxy.c b/src/ipaccess/ipaccess-proxy.c
index 1ed215d..47465b4 100644
--- a/src/ipaccess/ipaccess-proxy.c
+++ b/src/ipaccess/ipaccess-proxy.c
@@ -283,7 +283,7 @@
 	if (other_conn) {
 		/* enqueue the message for TX on the respective FD */
 		msgb_enqueue(&other_conn->tx_queue, msg);
-		other_conn->fd.when |= OSMO_FD_WRITE;
+		osmo_fd_write_enable(&other_conn->fd);
 	} else
 		msgb_free(msg);
 
@@ -293,7 +293,7 @@
 static int handle_udp_write(struct osmo_fd *bfd)
 {
 	/* not implemented yet */
-	bfd->when &= ~OSMO_FD_WRITE;
+	osmo_fd_write_disable(bfd);
 
 	return -EIO;
 }
@@ -840,7 +840,7 @@
 		/* enqueue packet towards BSC */
 		msgb_enqueue(&bsc_conn->tx_queue, msg);
 		/* mark respective filedescriptor as 'we want to write' */
-		bsc_conn->fd.when |= OSMO_FD_WRITE;
+		osmo_fd_write_enable(&bsc_conn->fd);
 	} else {
 		logp_ipbc_uid(DLINP, LOGL_INFO, ipbc, bfd->priv_nr >> 8);
 		LOGPC(DLINP, LOGL_INFO, "Dropping packet from %s, "
@@ -869,7 +869,7 @@
 
 	/* get the next msg for this timeslot */
 	if (llist_empty(&ipc->tx_queue)) {
-		bfd->when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(bfd);
 		return 0;
 	}
 	lh = ipc->tx_queue.next;
diff --git a/src/osmo-bsc/meas_feed.c b/src/osmo-bsc/meas_feed.c
index 889f6ef..881f409 100644
--- a/src/osmo-bsc/meas_feed.c
+++ b/src/osmo-bsc/meas_feed.c
@@ -119,7 +119,7 @@
 	char buf[256];
 
 	rc = read(ofd->fd, buf, sizeof(buf));
-	ofd->fd &= ~OSMO_FD_READ;
+	osmo_fd_read_disable(ofd);
 
 	return rc;
 }
@@ -159,7 +159,7 @@
 	if (rc < 0)
 		return rc;
 
-	g_mfs.wqueue.bfd.when &= ~OSMO_FD_READ;
+	osmo_fd_read_disable(&g_mfs.wqueue.bfd);
 
 	if (g_mfs.dst_host)
 		talloc_free(g_mfs.dst_host);
diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c
index d59df33..541fc84 100644
--- a/src/osmo-bsc/pcu_sock.c
+++ b/src/osmo-bsc/pcu_sock.c
@@ -495,7 +495,7 @@
 		return -EIO;
 	}
 	msgb_enqueue(&state->upqueue, msg);
-	conn_bfd->when |= OSMO_FD_WRITE;
+	osmo_fd_write_enable(conn_bfd);
 
 	return 0;
 }
@@ -518,7 +518,7 @@
 	osmo_fd_unregister(bfd);
 
 	/* re-enable the generation of ACCEPT for new connections */
-	state->listen_bfd.when |= OSMO_FD_READ;
+	osmo_fd_read_enable(&state->listen_bfd);
 
 #if 0
 	/* remove si13, ... */
@@ -597,7 +597,7 @@
 		msg = llist_entry(state->upqueue.next, struct msgb, list);
 		pcu_prim = (struct gsm_pcu_if *)msg->data;
 
-		bfd->when &= ~OSMO_FD_WRITE;
+		osmo_fd_write_disable(bfd);
 
 		/* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
 		if (!msgb_length(msg)) {
@@ -612,7 +612,7 @@
 			goto close;
 		if (rc < 0) {
 			if (errno == EAGAIN) {
-				bfd->when |= OSMO_FD_WRITE;
+				osmo_fd_write_enable(bfd);
 				break;
 			}
 			goto close;
@@ -667,7 +667,7 @@
 		LOGP(DPCU, LOGL_NOTICE, "PCU connects but we already have "
 			"another active connection ?!?\n");
 		/* We already have one PCU connected, this is all we support */
-		state->listen_bfd.when &= ~OSMO_FD_READ;
+		osmo_fd_read_disable(&state->listen_bfd);
 		close(rc);
 		return 0;
 	}
