diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c
index 9de9e2e..71249cf 100644
--- a/src/core/osmo_io.c
+++ b/src/core/osmo_io.c
@@ -781,7 +781,8 @@
 void osmo_iofd_notify_connected(struct osmo_io_fd *iofd)
 {
 	OSMO_ASSERT(iofd->mode == OSMO_IO_FD_MODE_READ_WRITE);
-	osmo_iofd_ops.write_enable(iofd);
+	OSMO_ASSERT(osmo_iofd_ops.notify_connected);
+	osmo_iofd_ops.notify_connected(iofd);
 }
 
 
diff --git a/src/core/osmo_io_internal.h b/src/core/osmo_io_internal.h
index e8f4ea2..9c86e05 100644
--- a/src/core/osmo_io_internal.h
+++ b/src/core/osmo_io_internal.h
@@ -31,12 +31,14 @@
 	void (*write_disable)(struct osmo_io_fd *iofd);
 	void (*read_enable)(struct osmo_io_fd *iofd);
 	void (*read_disable)(struct osmo_io_fd *iofd);
+	void (*notify_connected)(struct osmo_io_fd *iofd);
 };
 
 #define IOFD_FLAG_CLOSED (1<<0)
 #define IOFD_FLAG_IN_CALLBACK (1<<1)
 #define IOFD_FLAG_TO_FREE (1<<2)
 #define IOFD_FLAG_NOTIFY_CONNECTED (1<<3)
+#define IOFD_FLAG_FD_REGISTERED (1<<4)
 
 #define IOFD_FLAG_SET(iofd, flag) \
 	(iofd)->flags |= (flag)
diff --git a/src/core/osmo_io_poll.c b/src/core/osmo_io_poll.c
index d7f80c0..8398a30 100644
--- a/src/core/osmo_io_poll.c
+++ b/src/core/osmo_io_poll.c
@@ -119,20 +119,32 @@
 int iofd_poll_register(struct osmo_io_fd *iofd)
 {
 	struct osmo_fd *ofd = &iofd->u.poll.ofd;
+	int rc;
+
+	if (IOFD_FLAG_ISSET(iofd, IOFD_FLAG_FD_REGISTERED))
+		return 0;
 	osmo_fd_setup(ofd, iofd->fd, 0, &iofd_poll_ofd_cb_dispatch, iofd, 0);
-	return osmo_fd_register(ofd);
+	rc = osmo_fd_register(ofd);
+	if (!rc)
+		IOFD_FLAG_SET(iofd, IOFD_FLAG_FD_REGISTERED);
+	return rc;
 }
 
 int iofd_poll_unregister(struct osmo_io_fd *iofd)
 {
 	struct osmo_fd *ofd = &iofd->u.poll.ofd;
+
+	if (!IOFD_FLAG_ISSET(iofd, IOFD_FLAG_FD_REGISTERED))
+		return 0;
 	osmo_fd_unregister(ofd);
+	IOFD_FLAG_UNSET(iofd, IOFD_FLAG_FD_REGISTERED);
 
 	return 0;
 }
 
 int iofd_poll_close(struct osmo_io_fd *iofd)
 {
+	iofd_poll_unregister(iofd);
 	osmo_fd_close(&iofd->u.poll.ofd);
 
 	return 0;
@@ -158,6 +170,16 @@
 	osmo_fd_write_disable(&iofd->u.poll.ofd);
 }
 
+void iofd_poll_notify_connected(struct osmo_io_fd *iofd)
+{
+	int rc;
+
+	rc = iofd_poll_register(iofd);
+	if (rc < 0)
+		return;
+	osmo_fd_write_enable(&iofd->u.poll.ofd);
+}
+
 const struct iofd_backend_ops iofd_poll_ops = {
 	.register_fd = iofd_poll_register,
 	.unregister_fd = iofd_poll_unregister,
@@ -166,6 +188,7 @@
 	.write_disable = iofd_poll_write_disable,
 	.read_enable = iofd_poll_read_enable,
 	.read_disable = iofd_poll_read_disable,
+	.notify_connected = iofd_poll_notify_connected,
 };
 
 #endif /* defined(__linux__) */
diff --git a/src/core/osmo_io_uring.c b/src/core/osmo_io_uring.c
index 1aa17d4..24d1e08 100644
--- a/src/core/osmo_io_uring.c
+++ b/src/core/osmo_io_uring.c
@@ -402,6 +402,7 @@
 	.write_disable = iofd_uring_write_disable,
 	.read_enable = iofd_uring_read_enable,
 	.read_disable = iofd_uring_read_disable,
+	.notify_connected = iofd_uring_write_enable,
 };
 
 #endif /* defined(__linux__) */
