diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index 3b1e118..ee5919d 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -27,6 +27,7 @@
 
 #include <filesystem>
 #include <fstream>
+#include <locale>
 #include <xyz/openbmc_project/Common/error.hpp>
 #include <xyz/openbmc_project/Logging/Create/server.hpp>
 
@@ -735,7 +736,7 @@
             str += getNumberString("%08X", value);
         }
     }
-    return str;
+    return sanitizeFieldForDBus(str);
 }
 
 void Manager::updateEventId(std::unique_ptr<openpower::pels::PEL>& pel)
@@ -749,6 +750,17 @@
     }
 }
 
+std::string Manager::sanitizeFieldForDBus(std::string field)
+{
+    std::for_each(field.begin(), field.end(), [](char& ch) {
+        if (((ch < ' ') || (ch > '~')) && (ch != '\n') && (ch != '\t'))
+        {
+            ch = ' ';
+        }
+    });
+    return field;
+}
+
 std::string Manager::getResolution(const openpower::pels::PEL& pel) const
 {
     std::string str;
@@ -812,7 +824,7 @@
             }
         }
     }
-    return resolution;
+    return sanitizeFieldForDBus(resolution);
 }
 
 bool Manager::updateResolution(const openpower::pels::PEL& pel)
diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index 4432634..fa8ac0f 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -273,6 +273,17 @@
      */
     void updateProgressSRC(std::unique_ptr<openpower::pels::PEL>& pel) const;
 
+    /**
+     * @brief Converts unprintable characters from the passed
+     *        in string to spaces so they won't crash D-Bus when
+     *        used as a property value.
+     *
+     * @param[in] field - The field to fix
+     *
+     * @return std::string - The string without non printable characters.
+     */
+    static std::string sanitizeFieldForDBus(std::string field);
+
   private:
     /**
      * @brief Adds a received raw PEL to the PEL repository
