diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
index a847c5f16420610b778b0c1907b9ecc6fbb20172..3dfed33e57de8096c72ce26bd2f3979ddac1c795 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
@@ -1168,14 +1168,13 @@ void KinematicUnitWidgetController::reportControlModeChanged(const NameControlMo
 
 void KinematicUnitWidgetController::reportJointCurrents(const NameValueMap& jointCurrents, Ice::Long timestamp, bool aValueChanged, const Ice::Current& c)
 {
-    if (!aValueChanged && jointCurrents.size() > 0)
+    boost::recursive_mutex::scoped_lock lock(mutexNodeSet);
+    if (aValueChanged && jointCurrents.size() > 0)
     {
-        return;
+        jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents));
     }
 
-    boost::recursive_mutex::scoped_lock lock(mutexNodeSet);
-    jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents));
-    if (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime)
+    while (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime && jointCurrentHistory.size() > 1)
     {
         jointCurrentHistory.pop_front();
     }