diff --git a/client/cmdhf.c b/client/cmdhf.c
index 6cd65fd6e..16b19f278 100644
--- a/client/cmdhf.c
+++ b/client/cmdhf.c
@@ -88,31 +88,37 @@ void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
 	case MIFARE_ULC_AUTH_1 :		snprintf(exp,size,"AUTH "); break;
 	case MIFARE_ULC_AUTH_2 : 		snprintf(exp,size,"AUTH_ANSW"); break;
 	case MIFARE_ULEV1_AUTH :		snprintf(exp,size,"PWD-AUTH"); break;
-
 	case MIFARE_ULEV1_FASTREAD : {
-		if ( cmd[2] < 0x21)
+		if ( cmdsize >=3 && cmd[2] < 0x21)
 			snprintf(exp,size,"READ RANGE (%d-%d)",cmd[1],cmd[2]); 
+		else
+			snprintf(exp,size,"?");
 		break;
 	}
 	case MIFARE_ULEV1_WRITE : {
 		if ( cmd[1] < 0x21 )
 			snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); 
+		else
+			snprintf(exp,size,"?");
 		break;
 	}
 	case MIFARE_ULEV1_READ_CNT :{
 		if ( cmd[1] < 5 )
 			snprintf(exp,size,"READ CNT(%d)",cmd[1]);
+		else
+			snprintf(exp,size,"?");
 		break;
 	}
 	case MIFARE_ULEV1_INCR_CNT : {
 		if ( cmd[1] < 5 )
-		snprintf(exp,size,"INC(%d)",cmd[1]);
+			snprintf(exp,size,"INCR(%d)",cmd[1]);
+		else
+			snprintf(exp,size,"?");
 		break;
 	}
 	case MIFARE_ULEV1_READSIG :		snprintf(exp,size,"READ_SIG"); break;
 	case MIFARE_ULEV1_CHECKTEAR : 	snprintf(exp,size,"CHK_TEARING(%d)",cmd[1]); break;
 	case MIFARE_ULEV1_VCSL :		snprintf(exp,size,"VCSL"); break;
-	
 	default:						snprintf(exp,size,"?"); break;
 	}
 	return;
@@ -274,9 +280,8 @@ uint8_t iso14443B_CRC_check(bool isResponse, uint8_t* data, uint8_t len)
 	ComputeCrc14443(CRC_14443_B, data, len-2, &b1, &b2);
 	if(b1 != data[len-2] || b2 != data[len-1]) {
 	  return 0;
-	} else {
-	return 1;
 	}
+	return 1;
 }
 
 /**