diff --git a/tests/osmo_io/osmo_io_test.c b/tests/osmo_io/osmo_io_test.c
index 3683ee3..a42e6d0 100644
--- a/tests/osmo_io/osmo_io_test.c
+++ b/tests/osmo_io/osmo_io_test.c
@@ -38,6 +38,11 @@
 
 #define TEST_START() printf("Running %s\n", __func__)
 
+static uint8_t TESTDATA[] = {
+	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
+};
+
+
 static void *ctx = NULL;
 
 static void read_cb(struct osmo_io_fd *iofd, int rc, struct msgb *msg)
@@ -51,7 +56,15 @@
 
 static void write_cb(struct osmo_io_fd *iofd, int rc, struct msgb *msg)
 {
+	uint8_t *buf;
 	printf("%s: write() returned rc=%d\n", osmo_iofd_get_name(iofd), rc);
+	if (rc == 0) {
+		msg = msgb_alloc(1024, "Test data");
+		buf = msgb_put(msg, sizeof(TESTDATA));
+		memcpy(buf, TESTDATA, sizeof(TESTDATA));
+
+		osmo_iofd_write_msgb(iofd, msg);
+	}
 }
 
 struct osmo_io_ops ioops_conn_read_write = {
@@ -59,16 +72,10 @@
 	.write_cb = write_cb,
 };
 
-uint8_t TESTDATA[] = {
-	1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
-};
-
 static void test_connected(void)
 {
 	int fds[2] = {0, 0}, rc;
 	struct osmo_io_fd *iofd1, *iofd2;
-	struct msgb *msg;
-	uint8_t *buf;
 
 	TEST_START();
 
@@ -80,13 +87,6 @@
 	iofd2 = osmo_iofd_setup(ctx, fds[1], "ep2", OSMO_IO_FD_MODE_READ_WRITE, &ioops_conn_read_write, NULL);
 	osmo_iofd_register(iofd2, fds[1]);
 
-	msg = msgb_alloc(1024, "Test data");
-	buf = msgb_put(msg, sizeof(TESTDATA));
-	memcpy(buf, TESTDATA, sizeof(TESTDATA));
-
-	osmo_iofd_write_msgb(iofd1, msg);
-
-
 	/* Allow enough cycles to handle the messages */
 	for (int i = 0; i < 128; i++)
 		osmo_select_main(1);
diff --git a/tests/osmo_io/osmo_io_test.ok b/tests/osmo_io/osmo_io_test.ok
index 43e5464..82a6f38 100644
--- a/tests/osmo_io/osmo_io_test.ok
+++ b/tests/osmo_io/osmo_io_test.ok
@@ -1,6 +1,10 @@
 Running test_connected
-ep1: write() returned rc=16
+ep1: write() returned rc=0
 ep2: write() returned rc=0
+ep1: write() returned rc=16
+ep2: write() returned rc=16
+ep1: read() msg with len=16
+01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 
 ep2: read() msg with len=16
 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 
 Running test_unconnected
