diff --git a/kernel/wr-nic-dio.c b/kernel/wr-nic-dio.c
index 5dbe0e344ed4138768c8ed5e8127ad7dd5008a93..11d3c9ddd15e57c00aa4bbd85a4acde9b5bb0178 100644
--- a/kernel/wr-nic-dio.c
+++ b/kernel/wr-nic-dio.c
@@ -243,14 +243,16 @@ again:
 			nstamp++;
 			ts++;
 		}
-		if (nstamp) break;
+		if (nstamp) {
+			cmd->channel = ch;
+			break;
+		}
 	}
 	cmd->nstamp = nstamp;
-	if (nstamp)
-		cmd->channel = ch; /* if any, they are all of this channel */
 
 	/* The user may asketo wait for timestamps, but for 1 channel only */
 	if (!nstamp && cmd->flags & WR_DIO_F_WAIT) {
+		ch--; c--; /* The for above incremeted them */
 		/*
 		 * HACK: since 2.1.68 (Nov 1997) the ioctl is called locked.
 		 * So we need to unlock, but that is dangerous for rmmod