diff --git a/attn/attn_logging.cpp b/attn/attn_logging.cpp
index f8a34b1..f51bb46 100644
--- a/attn/attn_logging.cpp
+++ b/attn/attn_logging.cpp
@@ -222,12 +222,19 @@
             (uint32_t)std::stoul(i_additional["0x28 SRC Word 18"], 0, 16),
             (uint32_t)std::stoul(i_additional["0x2c SRC Word 19"], 0, 16)});
 
-        // populate hypervisor primary SRC
+        // Populate phyp primary SRC
+
+        // char array for raw pel src
         std::array<char, pel::asciiStringSize> srcChars{'0'};
+
+        // src from TI info
         std::string srcString = i_additional["SrcAscii"];
+
+        // copy from string to char array
         srcString.copy(srcChars.data(),
                        std::min(srcString.size(), pel::asciiStringSize), 0);
-        tiPel->setAsciiString(srcChars);
+
+        tiPel->setAsciiString(srcChars); // pel object src is char array
     }
     else
     {
@@ -245,12 +252,19 @@
             (uint32_t)std::stoul(i_additional["0x28 HB Word 7"], 0, 16),
             (uint32_t)std::stoul(i_additional["0x2c HB Word 8"], 0, 16)});
 
-        // populate hostboot primary SRC
+        // Populate hostboot primary SRC
+
+        // char array for raw pel src
         std::array<char, pel::asciiStringSize> srcChars{'0'};
-        std::string srcString = i_additional["0x30 error_data"];
+
+        // src from TI info
+        std::string srcString = i_additional["SrcAscii"];
+
+        // copy from string to char array
         srcString.copy(srcChars.data(),
                        std::min(srcString.size(), pel::asciiStringSize), 0);
-        tiPel->setAsciiString(srcChars);
+
+        tiPel->setAsciiString(srcChars); // pel object src is char array
     }
 
     // set severity, event type and action flags
diff --git a/attn/ti_handler.cpp b/attn/ti_handler.cpp
index f04f111..9752fca 100644
--- a/attn/ti_handler.cpp
+++ b/attn/ti_handler.cpp
@@ -87,11 +87,10 @@
         tiAdditionalData["Subsystem"] =
             std::to_string(static_cast<uint8_t>(pel::SubsystemID::hypervisor));
 
-        // copy ascii src chars to additional data
-        char srcChar[9]; // 8 char src + null term
-        memcpy(srcChar, &(i_tiDataArea->asciiData0), 4);
-        memcpy(&srcChar[4], &(i_tiDataArea->asciiData1), 4);
-        srcChar[8]                   = 0;
+        // Copy all ascii src chars to additional data
+        char srcChar[33]; // 32 ascii chars + null term
+        memcpy(srcChar, &(i_tiDataArea->asciiData0), 32);
+        srcChar[32]                  = 0;
         tiAdditionalData["SrcAscii"] = std::string{srcChar};
 
         // TI event
@@ -244,10 +243,12 @@
             tiAdditionalData["Subsystem"] = std::to_string(
                 static_cast<uint8_t>(pel::SubsystemID::hostboot));
 
-            char srcChar[8];
-            memcpy(srcChar, &(i_tiDataArea->srcWord12HbWord0), 4);
-            memcpy(&srcChar[4], &(i_tiDataArea->asciiData1), 4);
-            tiAdditionalData["SrcAscii"] = std::string{srcChar};
+            // Translate hex src value to ascii. This results in an 8 character
+            // SRC (hostboot SRC is 32 bits)
+            std::stringstream src;
+            src << std::setw(8) << std::setfill('0') << std::hex
+                << be32toh(i_tiDataArea->srcWord12HbWord0);
+            tiAdditionalData["SrcAscii"] = src.str();
 
             eventTerminate(tiAdditionalData, (char*)i_tiDataArea);
         }
