diff --git a/mainloop.cpp b/mainloop.cpp
index 8a804f7..c93beb8 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -207,7 +207,7 @@
 }
 
 auto addValue(const SensorSet::key_type& sensor,
-              const std::string& devPath,
+              const RetryIO& retryIO,
               sysfs::hwmonio::HwmonIO& ioAccess,
               ObjectInfo& info,
               bool isOCC = false)
@@ -232,8 +232,8 @@
             sensor.first,
             sensor.second,
             hwmon::entry::cinput,
-            sysfs::hwmonio::retries,
-            sysfs::hwmonio::delay,
+            std::get<size_t>(retryIO),
+            std::get<std::chrono::milliseconds>(retryIO),
             isOCC);
 
     auto gain = getEnv("GAIN", sensor);
@@ -346,11 +346,18 @@
     objectPath.append(label);
 
     ObjectInfo info(&_bus, std::move(objectPath), Object());
+    RetryIO retryIO(sysfs::hwmonio::retries, sysfs::hwmonio::delay);
+    if (rmSensors.find(sensor.first) != rmSensors.end())
+    {
+        // When adding a sensor that was purposely removed,
+        // don't retry on errors when reading its value
+        std::get<size_t>(retryIO) = 0;
+    }
     auto valueInterface = static_cast<
             std::shared_ptr<ValueObject>>(nullptr);
     try
     {
-        valueInterface = addValue(sensor.first, _devPath, ioAccess, info,
+        valueInterface = addValue(sensor.first, retryIO, ioAccess, info,
                 _isOCC);
     }
     catch (const std::system_error& e)
