diff --git a/src/ADCSensor.cpp b/src/ADCSensor.cpp
index 1db036e..505bbfa 100644
--- a/src/ADCSensor.cpp
+++ b/src/ADCSensor.cpp
@@ -115,11 +115,6 @@
             nvalue = (nvalue / sensorScaleFactor) / scaleFactor;
             nvalue = std::round(nvalue * roundFactor) / roundFactor;
 
-            if (overridenState)
-            {
-                nvalue = overriddenValue;
-            }
-
             if (nvalue != value)
             {
                 updateValue(nvalue);
diff --git a/src/CPUSensor.cpp b/src/CPUSensor.cpp
index 955bab4..4c5eb8b 100644
--- a/src/CPUSensor.cpp
+++ b/src/CPUSensor.cpp
@@ -110,10 +110,6 @@
             double nvalue = std::stof(response);
             responseStream.clear();
             nvalue /= CPUSensor::sensorScaleFactor;
-            if (overridenState)
-            {
-                nvalue = overriddenValue;
-            }
             if (nvalue != value)
             {
                 if (show)
diff --git a/src/ChassisIntrusionSensor.cpp b/src/ChassisIntrusionSensor.cpp
index 22c03ab..4bf7fdc 100644
--- a/src/ChassisIntrusionSensor.cpp
+++ b/src/ChassisIntrusionSensor.cpp
@@ -54,6 +54,7 @@
     // indicate that it is internal set call
     mInternalSet = true;
     mIface->set_property("Status", newValue);
+    mInternalSet = false;
 
     mValue = newValue;
 
@@ -147,12 +148,6 @@
             int statusValue = i2cReadFromPch(mBusId, mSlaveAddr);
             std::string newValue = statusValue ? "HardwareIntrusion" : "Normal";
 
-            // save value
-            if (mOverridenState)
-            {
-                newValue = mOverriddenValue;
-            }
-
             if (newValue != "unknown" && mValue != newValue)
             {
                 std::cout << "update value from " << mValue << " to "
@@ -200,12 +195,6 @@
             std::cout << "Intrusion sensor value is " << newValue << "\n";
         }
 
-        // save value
-        if (mOverridenState)
-        {
-            newValue = mOverriddenValue;
-        }
-
         if (newValue != "unknown" && mValue != newValue)
         {
             std::cout << "update value from " << mValue << " to " << newValue
@@ -251,16 +240,15 @@
 int ChassisIntrusionSensor::setSensorValue(const std::string& req,
                                            std::string& propertyValue)
 {
-    if (mInternalSet)
+    if (!mInternalSet)
     {
-        mInternalSet = false;
         propertyValue = req;
-    }
-    else
-    {
-        mOverriddenValue = req;
         mOverridenState = true;
     }
+    else if (!mOverridenState)
+    {
+        propertyValue = req;
+    }
     return 1;
 }
 
diff --git a/src/HwmonTempSensor.cpp b/src/HwmonTempSensor.cpp
index 8325d3d..8472012 100644
--- a/src/HwmonTempSensor.cpp
+++ b/src/HwmonTempSensor.cpp
@@ -103,10 +103,6 @@
         {
             float nvalue = std::stof(response);
             nvalue /= sensorScaleFactor;
-            if (overridenState)
-            {
-                nvalue = overriddenValue;
-            }
             if (nvalue != value)
             {
                 updateValue(nvalue);
diff --git a/src/PSUSensor.cpp b/src/PSUSensor.cpp
index c71b84d..5410b08 100644
--- a/src/PSUSensor.cpp
+++ b/src/PSUSensor.cpp
@@ -92,10 +92,6 @@
             float nvalue = std::stof(response);
             responseStream.clear();
             nvalue /= sensorFactor;
-            if (overridenState)
-            {
-                nvalue = overriddenValue;
-            }
             if (nvalue != value)
             {
                 updateValue(nvalue);
diff --git a/src/TachSensor.cpp b/src/TachSensor.cpp
index 36b5ecf..03ff4a5 100644
--- a/src/TachSensor.cpp
+++ b/src/TachSensor.cpp
@@ -131,10 +131,6 @@
                 std::getline(responseStream, response);
                 float nvalue = std::stof(response);
                 responseStream.clear();
-                if (overridenState)
-                {
-                    nvalue = overriddenValue;
-                }
                 if (nvalue != value)
                 {
                     updateValue(nvalue);
