diff --git a/f1/can/src/can.c b/f1/can/src/can.c
index a8de97afe8bfb87fe9a19f6549e765a0f5f684fe..182a9ae75293559ff52e6902feabf5b26898a3f5 100644
--- a/f1/can/src/can.c
+++ b/f1/can/src/can.c
@@ -264,8 +264,8 @@ void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* CANHandle)
     }
   }
   //__HAL_CAN_DISABLE_IT(CANHandle,CAN_IT_TME);
-  __HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_RQCP0);
-  __HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_TXOK0);
+  //__HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_RQCP0);
+  //__HAL_CAN_CLEAR_FLAG(CANHandle,CAN_FLAG_TXOK0);
 }
 
 void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* CANHandle)
@@ -381,6 +381,8 @@ unsigned char can_cancel_receive_irq(void)
 /* DMA functions */
 unsigned char can_send_dma(unsigned char *data,unsigned short int length)
 {
+  __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_RQCP0);
+  __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_TXOK0);
   if(length > 8){
     CANHandle.pTxMsg->DLC = 8;
     for (uint8_t i=0;i<length;i++)
@@ -401,14 +403,14 @@ unsigned char can_send_dma(unsigned char *data,unsigned short int length)
     {
       CANHandle.pTxMsg->Data[i] = data[i];
     }
+    can_send_lenght = 0;
+    can_send_iterations = 0;
     HAL_CAN_Transmit_IT(&CANHandle);
     uint8_t byte;
     comm_do_dma_send(can_comm_dev);
     comm_do_irq_send(can_comm_dev,&byte);
   }
   //HAL_CAN_Transmit_IT(&CANHandle);
-  __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_RQCP0);
-  __HAL_CAN_CLEAR_FLAG(&CANHandle,CAN_FLAG_TXOK0);
   return 0x00;
 }