diff --git a/dev/minic.c b/dev/minic.c
index da3ddc7290f08613fc1335c27454f37ab059bad3..79c061ddb47c2d6f0fe6d20f9cad94f9059207fa 100644
--- a/dev/minic.c
+++ b/dev/minic.c
@@ -338,17 +338,24 @@ int minic_tx_frame(uint8_t * hdr, uint8_t * payload, uint32_t size,
 		uint32_t nsec;
 
 		/* wait for the timestamp */
-		for (i = 0; i < 1000; ++i) {
+		for (i = 0; i < 100; ++i) {
 			mcr = minic_readl(MINIC_REG_MCR);
 			if ((mcr & MINIC_MCR_TX_TS_READY) != 0) break;
 			timer_delay(1);
 		}
 
-		if (i == 1000)
+		ts_valid = 1;
+
+		if (i == 100)
+		{
 			mprintf("Warning: tx timestamp never became available\n");
+			ts_valid = 0;
+		}
+
 
-		ts_valid = (uint8_t)(minic_readl(MINIC_REG_TSR0)
-				     & MINIC_TSR0_VALID);
+		if(ts_valid)
+			ts_valid = (uint8_t)(minic_readl(MINIC_REG_TSR0)
+					     & MINIC_TSR0_VALID);
 
 		raw_ts = minic_readl(MINIC_REG_TSR1);
 		fid = MINIC_TSR0_FID_R(minic_readl(MINIC_REG_TSR0));