diff --git a/src/capture/capture_base.cpp b/src/capture/capture_base.cpp
index dd4e848601004573fabd94b328be05d728826cd9..d566ba5abad8ac6c7848e347babb434876653284 100644
--- a/src/capture/capture_base.cpp
+++ b/src/capture/capture_base.cpp
@@ -140,14 +140,14 @@ const std::string& CaptureBase::getStructure() const
 
 StateBlockPtr CaptureBase::getStateBlock(const std::string& _key) const
 {
-    if (getSensor())
+    if (getSensor() and getSensor()->getStateBlock(_key))
     {
-        if (getSensor()->getO() and getSensor()->isStateBlockDynamic(_key))
+        if (getSensor()->isStateBlockDynamic(_key))
             return HasStateBlocks::getStateBlock(_key);
         else
             return getSensor()->getStateBlock(_key);
     }
-    else // No sensor associated: assume sensor params are here
+    else // No sensor associated, or sensor without this state block: assume sensor params are here
         return HasStateBlocks::getStateBlock(_key);
 }