diff --git a/src/connection.c b/src/connection.c
index f054cd1..0c90c3b 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -94,28 +94,28 @@
 	if ((conn->flags & CO_FL_INIT_DATA) && conn->data->init(conn) < 0)
 		return;
 
-	/* The data transfer starts here and stops on error and handshakes. Note
-	 * that we must absolutely test conn->xprt at each step in case it suddenly
-	 * changes due to a quick unexpected close().
-	 */
-	if (conn->xprt && fd_recv_ready(fd) &&
-	    ((conn->flags & (CO_FL_DATA_RD_ENA|CO_FL_WAIT_ROOM|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_RD_ENA)) {
+	if (conn->xprt && fd_send_ready(fd) &&
+	    ((conn->flags & (CO_FL_DATA_WR_ENA|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_WR_ENA)) {
 		/* force reporting of activity by clearing the previous flags :
 		 * we'll have at least ERROR or CONNECTED at the end of an I/O,
 		 * both of which will be detected below.
 		 */
 		flags = 0;
-		conn->data->recv(conn);
+		conn->data->send(conn);
 	}
 
-	if (conn->xprt && fd_send_ready(fd) &&
-	    ((conn->flags & (CO_FL_DATA_WR_ENA|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_WR_ENA)) {
+	/* The data transfer starts here and stops on error and handshakes. Note
+	 * that we must absolutely test conn->xprt at each step in case it suddenly
+	 * changes due to a quick unexpected close().
+	 */
+	if (conn->xprt && fd_recv_ready(fd) &&
+	    ((conn->flags & (CO_FL_DATA_RD_ENA|CO_FL_WAIT_ROOM|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_RD_ENA)) {
 		/* force reporting of activity by clearing the previous flags :
 		 * we'll have at least ERROR or CONNECTED at the end of an I/O,
 		 * both of which will be detected below.
 		 */
 		flags = 0;
-		conn->data->send(conn);
+		conn->data->recv(conn);
 	}
 
 	/* It may happen during the data phase that a handshake is
