diff --git a/source/RobotAPI/libraries/core/PIDController.cpp b/source/RobotAPI/libraries/core/PIDController.cpp
index 97f5829f4f880afb304f4365546dc698ae630358..e39f631ab5ce5849ee88924a077dc294e07c2779 100644
--- a/source/RobotAPI/libraries/core/PIDController.cpp
+++ b/source/RobotAPI/libraries/core/PIDController.cpp
@@ -164,7 +164,7 @@ MultiDimPIDController::MultiDimPIDController(float Kp, float Ki, float Kd, doubl
 
 void MultiDimPIDController::update(const double deltaSec, const Eigen::VectorXf& measuredValue, const Eigen::VectorXf& targetValue)
 {
-    getLock();
+    ScopedRecursiveLockPtr lock = getLock();
     processValue = measuredValue;
     target = targetValue;
 
@@ -240,7 +240,7 @@ void MultiDimPIDController::update(const double deltaSec, const Eigen::VectorXf&
 
 void MultiDimPIDController::update(const Eigen::VectorXf& measuredValue, const Eigen::VectorXf& targetValue)
 {
-    getLock();
+    ScopedRecursiveLockPtr lock = getLock();
     IceUtil::Time now = TimeUtil::GetTime();
 
     if (firstRun)
@@ -260,7 +260,7 @@ const Eigen::VectorXf& MultiDimPIDController::getControlValue() const
 
 void MultiDimPIDController::reset()
 {
-    getLock();
+    ScopedRecursiveLockPtr lock = getLock();
     firstRun = true;
     previousError = 0;
     integral = 0;
@@ -284,6 +284,6 @@ ScopedRecursiveLockPtr MultiDimPIDController::getLock() const
 
 void MultiDimPIDController::setMaxControlValue(double value)
 {
-    getLock();
+    ScopedRecursiveLockPtr lock = getLock();
     maxControlValue = value;
 }