{
                        UsageMinMax.Minimum = 0;
                        UsageMinMax.Maximum = 0;
-                       UsageListSize   = 0;
+                       UsageListSize       = 0;
                }
        }
        
        uint16_t DataBitsRem  = ReportItem->Attributes.BitSize;
        uint16_t CurrentBit   = ReportItem->BitOffset;
        uint32_t BitMask      = (1 << 0);
-
-       ReportItem->PreviousValue = ReportItem->Value;
-       ReportItem->Value = 0;
        
        if (ReportItem->ReportID)
        {
                ReportData++;
        }
 
+       ReportItem->PreviousValue = ReportItem->Value;
+       ReportItem->Value = 0;
+
        while (DataBitsRem--)
        {
                if (ReportData[CurrentBit / 8] & (1 << (CurrentBit % 8)))