diff --git a/core_manager.cpp b/core_manager.cpp
index f48e8dc..eb6cef5 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -1,3 +1,6 @@
+#include <regex>
+#include <experimental/filesystem>
+
 #include <phosphor-logging/log.hpp>
 
 #include "core_manager.hpp"
@@ -22,12 +25,31 @@
     for (const auto& i : fileInfo)
     {
         // Get list of debug files.
-        if (IN_CLOSE_WRITE == i.second)
+        if (IN_CLOSE_WRITE != i.second)
         {
-            files.push_back(i.first.string());
+            continue;
+        }
+
+        namespace fs = std::experimental::filesystem;
+        fs::path file(i.first);
+        std::string name = file.filename();
+
+        /*
+          As per coredump source code systemd-coredump uses below format
+          https://github.com/systemd/systemd/blob/master/src/coredump/coredump.c
+          /var/lib/systemd/coredump/core.%s.%s." SD_ID128_FORMAT_STR “
+          systemd-coredump also creates temporary file in core file path prior
+          to actual core file creation. Checking the file name format will help
+          to limit dump creation only for the new core files.
+        */
+        if("core" == name.substr(0, name.find('.')))
+        {
+            //Consider only file name start with "core."
+            files.push_back(file);
         }
     }
-    if(!files.empty())
+
+    if (!files.empty())
     {
         createHelper(files);
     }
@@ -40,7 +62,7 @@
     constexpr auto MAPPER_INTERFACE = "xyz.openbmc_project.ObjectMapper";
     constexpr auto IFACE_INTERNAL("xyz.openbmc_project.Dump.Internal.Create");
     constexpr auto APPLICATION_CORED =
-              "xyz.openbmc_project.Dump.Internal.Create.Type.ApplicationCored";
+        "xyz.openbmc_project.Dump.Internal.Create.Type.ApplicationCored";
 
     auto b = sdbusplus::bus::new_default();
     auto mapper = b.new_method_call(
diff --git a/tools/dreport b/tools/dreport
index 0b5f77b..41b53d7 100755
--- a/tools/dreport
+++ b/tools/dreport
@@ -336,21 +336,13 @@
 #        https://github.com/systemd/systemd/blob/master/src/coredump/coredump.c
 #        /var/lib/systemd/coredump/core.%s.%s." SD_ID128_FORMAT_STR “.
 #        <process ID>.%s000000"
-#        Added additional check to make sure that user provided in
-#        systemd-coredump format.
 function set_pid()
 {
-    #from coredump.c file.
-    CORE_BASE_STRING="/var/lib/systemd/coredump/core"
-
     #Escape bash characters in file name
     file=$(printf %q "$optional_file")
 
-    string=$(echo $file | awk -F . '{ print $1}')
-    if [ "$CORE_BASE_STRING" = "$string" ]; then
-        #matching systemd-coredump core file format.
-        core_pid=$(echo $file | awk -F . '{ print $5}')
-    fi
+    #matching systemd-coredump core file format.
+    core_pid=$(echo $file | awk -F . '{ print $5}')
 }
 
 # @brief Capture debug data based on the input command array.
