if (CurrStateTable == &StateTable[HID_STATETABLE_STACK_DEPTH - 1])\r
                                  return HID_PARSE_HIDStackOverflow;\r
        \r
-                               memcpy(CurrStateTable,\r
-                                      (CurrStateTable + 1),\r
+                               memcpy((CurrStateTable + 1),\r
+                                      CurrStateTable,\r
                                       sizeof(HID_ReportItem_t));\r
 \r
                                CurrStateTable++;\r
                                break;\r
                        case (TYPE_GLOBAL | TAG_GLOBAL_REPORTID):\r
                                CurrStateTable->ReportID                    = ReportItemData;\r
-                               BitOffsetIn  = 0;\r
-                               BitOffsetOut = 0;\r
+                               ParserData->UsingMultipleReports = true;\r
+                               BitOffsetIn      = 0;\r
+                               BitOffsetOut     = 0;\r
+\r
+                               #if defined(HID_ENABLE_FEATURE_PROCESSING)\r
+                               BitOffsetFeature = 0;\r
+                               #endif\r
                                break;\r
                        case (TYPE_LOCAL | TAG_LOCAL_USAGE):\r
                                if (UsageStackSize == HID_USAGE_STACK_DEPTH)\r