diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs
index 40ff68a6..57c94ee9 100644
--- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs
+++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs
@@ -510,7 +510,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
}
finally
{
- var actualProcessMsg = $"{Resources.StrRegisterCompare}: {strRequiredRegisterValue} ";
+ var actualProcessMsg = string.IsNullOrEmpty(strRequiredRegisterValue) ? "":
+ $"{Resources.StrRegisterCompare}: {strRequiredRegisterValue} ";
OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrRegisterCompare}" +
$@" {ActualRegisterCtr} / {registersCount}",
@@ -549,16 +550,15 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
///
/// - Return false if PcbId between initial- and final-read does NOT match return false.
///
+ ///
+ /// - Allow final read out as often as called even if done before.
+ ///
public Boolean FinalReadRegisters()
{
if (_currentGenesis == null)
return false;
- // deny update of registers if already done
- if (_pcbIdFinalRegisterRead == _currentGenesis.PcbId)
- return true;
-
- _pcbIdFinalRegisterRead = _currentGenesis.PcbId;
+ _pcbIdFinalRegisterRead = _currentGenesis.PcbId;
// clear the contents of the restore registers if the water meter backed up was not identical
if (_pcbIdInitialRegisterRead != _pcbIdFinalRegisterRead)
{