diff --git a/src/transport/test.c b/src/transport/test.c
index 3d92111..0f35ffc 100644
--- a/src/transport/test.c
+++ b/src/transport/test.c
@@ -49,20 +49,33 @@
 
 	desc = &test->seq[test->cursor];
 
-	if (desc->type != PLDM_TRANSPORT_TEST_ELEMENT_LATENCY) {
-		return PLDM_REQUESTER_POLL_FAIL;
-	}
+	if (desc->type == PLDM_TRANSPORT_TEST_ELEMENT_LATENCY) {
+		rc = timerfd_settime(test->timerfd, 0, &desc->latency, NULL);
+		if (rc < 0) {
+			return PLDM_REQUESTER_POLL_FAIL;
+		}
 
-	rc = timerfd_settime(test->timerfd, 0, &desc->latency, NULL);
-	if (rc < 0) {
+		/* This was an explicit latency element, so now move beyond it for recv */
+		test->cursor++;
+	} else if (desc->type == PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV) {
+		/* Expire the timer immediately so it appears ready */
+		static const struct itimerspec ready = {
+			.it_value = { 0, 1 },
+			.it_interval = { 0, 0 },
+		};
+		rc = timerfd_settime(test->timerfd, 0, &ready, NULL);
+		if (rc < 0) {
+			return PLDM_REQUESTER_POLL_FAIL;
+		}
+
+		/* Don't increment test->cursor as recv needs to consume the current test element */
+	} else {
 		return PLDM_REQUESTER_POLL_FAIL;
 	}
 
 	pollfd->fd = test->timerfd;
 	pollfd->events = POLLIN;
 
-	test->cursor++;
-
 	return 0;
 }
 #endif
diff --git a/src/transport/transport.c b/src/transport/transport.c
index 1eeffb6..b860e2c 100644
--- a/src/transport/transport.c
+++ b/src/transport/transport.c
@@ -162,6 +162,7 @@
 	struct timeval now;
 	struct timeval end;
 	int ret;
+	int cnt;
 
 	if (req_msg_len < sizeof(*req_hdr) || !resp_msg_len) {
 		return PLDM_REQUESTER_INVALID_SETUP;
@@ -169,6 +170,20 @@
 
 	req_hdr = pldm_req_msg;
 
+	for (cnt = 0; cnt <= (PLDM_INSTANCE_MAX + 1) * PLDM_MAX_TIDS &&
+		      pldm_transport_poll(transport, 0) == 1;
+	     cnt++) {
+		rc = pldm_transport_recv_msg(transport, tid, pldm_resp_msg,
+					     resp_msg_len);
+		if (rc == PLDM_REQUESTER_SUCCESS) {
+			/* This isn't the message we wanted */
+			free(*pldm_resp_msg);
+		}
+	}
+	if (cnt == (PLDM_INSTANCE_MAX + 1) * PLDM_MAX_TIDS) {
+		return PLDM_REQUESTER_TRANSPORT_BUSY;
+	}
+
 	rc = pldm_transport_send_msg(transport, tid, pldm_req_msg, req_msg_len);
 	if (rc != PLDM_REQUESTER_SUCCESS) {
 		return rc;
