diff --git a/edk/Cper.h b/edk/Cper.h
index 7d14d23..b70e1bf 100644
--- a/edk/Cper.h
+++ b/edk/Cper.h
@@ -759,24 +759,6 @@
 /// ARM Processor Error Information Structure
 ///
 typedef struct {
-  UINT8 Version;
-  UINT8 Length;
-  UINT16 ValidationBits;
-  UINT8 Type;
-  UINT16 MultipleError;
-  UINT8 Flags;
-  EFI_ARM_PROCESSOR_ERROR_INFORMATION_STRUCTURE ErrorInformation;
-  UINT64 VirtualFaultAddress;
-  UINT64 PhysicalFaultAddress;
-} EFI_ARM_PROCESSOR_ERROR_INFORMATION_ENTRY;
-
-typedef union {
-  EFI_ARM_PROCESSOR_CACHE_ERROR_STRUCTURE CacheError;
-  EFI_ARM_PROCESSOR_TLB_ERROR_STRUCTURE TlbError;
-  EFI_ARM_PROCESSOR_BUS_ERROR_STRUCTURE BusError;
-} EFI_ARM_PROCESSOR_ERROR_INFORMATION_STRUCTURE;
-
-typedef struct {
   UINT64 ValidationBits : 16;
   UINT64 TransactionType : 2;
   UINT64 Operation : 4;
@@ -817,6 +799,24 @@
   UINT64 Reserved : 19;
 } EFI_ARM_PROCESSOR_BUS_ERROR_STRUCTURE;
 
+typedef union {
+  EFI_ARM_PROCESSOR_CACHE_ERROR_STRUCTURE CacheError;
+  EFI_ARM_PROCESSOR_TLB_ERROR_STRUCTURE TlbError;
+  EFI_ARM_PROCESSOR_BUS_ERROR_STRUCTURE BusError;
+} EFI_ARM_PROCESSOR_ERROR_INFORMATION_STRUCTURE;
+
+typedef struct {
+  UINT8 Version;
+  UINT8 Length;
+  UINT16 ValidationBits;
+  UINT8 Type;
+  UINT16 MultipleError;
+  UINT8 Flags;
+  EFI_ARM_PROCESSOR_ERROR_INFORMATION_STRUCTURE ErrorInformation;
+  UINT64 VirtualFaultAddress;
+  UINT64 PhysicalFaultAddress;
+} EFI_ARM_PROCESSOR_ERROR_INFORMATION_ENTRY;
+
 ///
 /// Error Status Fields
 ///
diff --git a/sections/cper-section-arm.c b/sections/cper-section-arm.c
index cda8252..cbb76b4 100644
--- a/sections/cper-section-arm.c
+++ b/sections/cper-section-arm.c
@@ -85,7 +85,7 @@
     json_object_object_add(error_info_ir, "errorType", error_type);
 
     //Multiple error count.
-    json_object* multiple_error = json_object_object_create();
+    json_object* multiple_error = json_object_new_object();
     json_object_object_add(multiple_error, "value", json_object_new_int(error_info->MultipleError));
     json_object_object_add(multiple_error, "type", 
         json_object_new_string(error_info->MultipleError < 1 ? "Single Error" : "Multiple Errors"));
@@ -100,13 +100,13 @@
     switch (error_info->Type)
     {
         case 0: //Cache
-            error_subinfo = cper_arm_cache_error_to_ir((EFI_ARM_PROCESSOR_CACHE_ERROR_STRUCTURE*)error_info->ErrorInformation);
+            error_subinfo = cper_arm_cache_error_to_ir((EFI_ARM_PROCESSOR_CACHE_ERROR_STRUCTURE*)&error_info->ErrorInformation);
             break;
         case 1: //TLB
-            error_subinfo = cper_arm_tlb_error_to_ir((EFI_ARM_PROCESSOR_TLB_ERROR_STRUCTURE*)error_info->ErrorInformation);
+            error_subinfo = cper_arm_tlb_error_to_ir((EFI_ARM_PROCESSOR_TLB_ERROR_STRUCTURE*)&error_info->ErrorInformation);
             break;
         case 2: //Bus
-            error_subinfo = cper_arm_bus_error_to_ir((EFI_ARM_PROCESSOR_BUS_ERROR_STRUCTURE*)error_info->ErrorInformation);
+            error_subinfo = cper_arm_bus_error_to_ir((EFI_ARM_PROCESSOR_BUS_ERROR_STRUCTURE*)&error_info->ErrorInformation);
             break;
     }
     json_object_object_add(error_info_ir, "errorInformation", error_subinfo);
diff --git a/sections/cper-section-generic.c b/sections/cper-section-generic.c
index 2745b06..04a5493 100644
--- a/sections/cper-section-generic.c
+++ b/sections/cper-section-generic.c
@@ -18,7 +18,7 @@
     json_object* section_ir = json_object_new_object();
 
     //Validation bits.
-    json_object* validation = bitfield64_to_ir(section_generic->ValidFields, 13, GENERIC_VALIDATION_BITFIELD_NAMES);
+    json_object* validation = bitfield_to_ir(section_generic->ValidFields, 13, GENERIC_VALIDATION_BITFIELD_NAMES);
     json_object_object_add(section_ir, "validationBits", validation);
 
     //Processor type, with human readable name if possible.
@@ -54,7 +54,7 @@
     json_object_object_add(section_ir, "operation", operation);
 
     //Flags, additional information about the error.
-    json_object* flags = bitfield8_to_ir(section_generic->Flags, 4, GENERIC_FLAGS_BITFIELD_NAMES);
+    json_object* flags = bitfield_to_ir(section_generic->Flags, 4, GENERIC_FLAGS_BITFIELD_NAMES);
     json_object_object_add(section_ir, "flags", flags);
 
     //The level of the error.
diff --git a/sections/cper-section-ia32x64.c b/sections/cper-section-ia32x64.c
index cb56ed7..6eca647 100644
--- a/sections/cper-section-ia32x64.c
+++ b/sections/cper-section-ia32x64.c
@@ -76,7 +76,7 @@
     json_object_object_add(error_info_ir, "type", json_object_new_string(error_type));
 
     //Validation bits.
-    json_object* validation = bitfield64_to_ir(error_info->ValidFields, 5, IA32X64_PROCESSOR_ERROR_VALID_BITFIELD_NAMES);
+    json_object* validation = bitfield_to_ir(error_info->ValidFields, 5, IA32X64_PROCESSOR_ERROR_VALID_BITFIELD_NAMES);
     json_object_object_add(error_info_ir, "validationBits", validation);
 
     //Add the check information on a per-structure basis.
