diff --git a/lib/lg2_commit.cpp b/lib/lg2_commit.cpp
index 60dd30e..4d75594 100644
--- a/lib/lg2_commit.cpp
+++ b/lib/lg2_commit.cpp
@@ -56,6 +56,36 @@
     auto j = t.to_json()[t.name()];
     for (const auto& item : j.items())
     {
+        // Special cases for the "_SOURCE" fields, which contain debug
+        // information about the origin of the event.
+        if (item.key() == "_SOURCE")
+        {
+            for (const auto& source_item : item.value().items())
+            {
+                if (source_item.key() == "PID")
+                {
+                    result.emplace("_PID", source_item.value().dump());
+                    continue;
+                }
+                if (source_item.key() == "FILE")
+                {
+                    result.emplace("_CODE_FILE", source_item.value());
+                    continue;
+                }
+                if (source_item.key() == "FUNCTION")
+                {
+                    result.emplace("_CODE_FUNC", source_item.value());
+                    continue;
+                }
+                if (source_item.key() == "LINE")
+                {
+                    result.emplace("_CODE_LINE", source_item.value().dump());
+                    continue;
+                }
+            }
+            continue;
+        }
+
         result.emplace(item.key(), item.value().dump());
     }
 
