diff --git a/src/shared/drivers/canbus/CanDriver/CanDriver.cpp b/src/shared/drivers/canbus/CanDriver/CanDriver.cpp
index ea7d92dfa282153d96d9361ae56d43b3d28c8f66..5aa54ede5fb0799e289635a2714ec866bdc0a561 100644
--- a/src/shared/drivers/canbus/CanDriver/CanDriver.cpp
+++ b/src/shared/drivers/canbus/CanDriver/CanDriver.cpp
@@ -49,6 +49,11 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config,
                            BitTiming bitTiming)
     : can(can)
 {
+    if (can == CAN2)
+    {
+        // CAN2 also need the CAN1 clock
+        ClockUtils::enablePeripheralClock(CAN1);
+    }
     // Enable the peripheral clock
     ClockUtils::enablePeripheralClock(can);
 
@@ -126,7 +131,14 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config,
     }
 }
 
-CanbusDriver::~CanbusDriver() { ClockUtils::disablePeripheralClock(can); }
+CanbusDriver::~CanbusDriver()
+{
+    ClockUtils::disablePeripheralClock(can);
+    if (can == CAN2)
+    {
+        ClockUtils::disablePeripheralClock(CAN1);
+    }
+}
 
 CanbusDriver::BitTiming CanbusDriver::calcBitTiming(AutoBitTiming autoBt)
 {
diff --git a/src/tests/drivers/canbus/CanProtocol/test-can-protocol.cpp b/src/tests/drivers/canbus/CanProtocol/test-can-protocol.cpp
index 57afa9bf9e27e2d09463a89cfe610d62c1bcf7e0..686ebd1840495e3dce8eceb98c6c509ec4fac0fe 100644
--- a/src/tests/drivers/canbus/CanProtocol/test-can-protocol.cpp
+++ b/src/tests/drivers/canbus/CanProtocol/test-can-protocol.cpp
@@ -67,9 +67,6 @@ int main()
     bitTiming.baudRate    = 50 * 1000;
     bitTiming.samplePoint = 87.5f / 100.0f;
 
-    // To make the CAN2 work the driver must be created also for CAN1
-    // TODO change this thing
-    CanbusDriver* driver1 = new CanbusDriver(CAN1, config, bitTiming);
     CanbusDriver* driver2 = new CanbusDriver(CAN2, config, bitTiming);
 
     // // Prepare the can driver