diff --git a/interrupts/crc/lay1+2.c b/interrupts/crc/lay1+2.c
index ac13c548ad1bff4f217980deeaa458aee244460b..5a4058b1a5ed83f54ee6f1288b2b5eb0cb76bfa2 100644
--- a/interrupts/crc/lay1+2.c
+++ b/interrupts/crc/lay1+2.c
@@ -105,15 +105,16 @@ int main(void){
                 if(bufferIndex != 0) receivedFrame[receiveIndex] = frame[bufferIndex-1];
                 else receivedFrame[receiveIndex] = frame[MAXFRAMESIZE-1];
                 printf("receivedFrame[%d] = %d, bufferIndex: %d \n", receiveIndex, receivedFrame[receiveIndex], bufferIndex);
-                switch(receiveIndex){
-                    case 0:
-                        if(receivedFrame[receiveIndex] != 0x7E) break;
-                    case 5:
+                
+                if(receiveIndex==0)
+                        if(receivedFrame[receiveIndex] == 0x7E) receiveIndex++;
+                else if(receiveIndex==5){
                         sizeToReceive = (uint16_t)receivedFrame[receiveIndex];
                         printf("sizeToReceive = %d\n", sizeToReceive);
                         receivedFrame = (byte*) realloc (receivedFrame, (sizeToReceive+6)*sizeof(byte));
-                    default:
-                        if(receiveIndex==sizeToReceive+5){
+                        receiveIndex++;
+                }
+                else if(receiveIndex==sizeToReceive+5){
                             //if(!crc_check(receivedFrame)){
                                 //puts("Fehler bei der Ãœbertragung durch CRC-Check festgestellt");
                                 for(uint i=0; i < sizeToReceive+6; i++)
@@ -127,10 +128,10 @@ int main(void){
                             }
                             */
                             receiveIndex = 0;
-                        }
-                        else
-                            receiveIndex++;
                 }
+                else
+                    receiveIndex++;
+                
                 readyToReceive = 0;