diff --git a/src/shared/sensors/LIS3MDL/LIS3MDL.cpp b/src/shared/sensors/LIS3MDL/LIS3MDL.cpp
index 91d8f42effecd7ed287db81b01cb378631dafc08..23ba605df1426ca9d25cfbcfd115eecd0ed50940 100644
--- a/src/shared/sensors/LIS3MDL/LIS3MDL.cpp
+++ b/src/shared/sensors/LIS3MDL/LIS3MDL.cpp
@@ -219,8 +219,8 @@ LIS3MDLData LIS3MDL::sampleImpl()
         tempCounter % configuration.temperatureDivider == 0)
     {
         val = spi.readRegister(TEMP_OUT_H);
-        val = val << 8;
-        val = spi.readRegister(TEMP_OUT_L);
+        val = (val << 8);
+        val |= spi.readRegister(TEMP_OUT_L);
 
         newData.temperatureTimestamp = TimestampTimer::getTimestamp();
         newData.temperature =
@@ -231,16 +231,19 @@ LIS3MDLData LIS3MDL::sampleImpl()
         newData.temperature = lastSample.temperature;
     }
 
-    val                    = spi.readRegister(OUT_X_H);
-    val                    = (val << 8) | spi.readRegister(OUT_X_L);
+    val = spi.readRegister(OUT_X_H);
+    val = (val << 8);
+    val |= spi.readRegister(OUT_X_L);
     newData.magneticFieldX = currentUnit * val;
 
-    val                    = spi.readRegister(OUT_Y_H);
-    val                    = (val << 8) | spi.readRegister(OUT_Y_L);
+    val = spi.readRegister(OUT_Y_H);
+    val = (val << 8);
+    val |= spi.readRegister(OUT_Y_L);
     newData.magneticFieldY = currentUnit * val;
 
-    val                    = spi.readRegister(OUT_Z_H);
-    val                    = (val << 8) | spi.readRegister(OUT_Z_L);
+    val = spi.readRegister(OUT_Z_H);
+    val = (val << 8);
+    val |= spi.readRegister(OUT_Z_L);
     newData.magneticFieldZ = currentUnit * val;
 
     return newData;