diff --git a/configure.ac b/configure.ac
index d2565d7..776c440 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,5 +87,14 @@
 AS_IF([test "x$CLASS_VERSION" == "x"], [CLASS_VERSION=1])
 AC_DEFINE_UNQUOTED([CLASS_VERSION], [$CLASS_VERSION], [Class version to register with Cereal])
 
+AC_ARG_ENABLE([ubifs-workaround],
+    AS_HELP_STRING([--enable-ubifs-workaround],
+                   [Turn on ubi workaround for core file])
+)
+AS_IF([test "x$enable_ubifs_workaround" != "xno"],
+      [AC_DEFINE([UBI_CORE_FILE_WORKAROUND], [],
+      [Turn on ubi workaround for core file])]
+)
+
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
diff --git a/core_manager.cpp b/core_manager.cpp
index beddd89..dfa1aeb 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -22,12 +22,6 @@
 
     for (const auto& i : fileInfo)
     {
-        // Get list of debug files.
-        if (IN_CLOSE_WRITE != i.second)
-        {
-            continue;
-        }
-
         namespace fs = std::experimental::filesystem;
         fs::path file(i.first);
         std::string name = file.filename();
diff --git a/core_manager.hpp b/core_manager.hpp
index 6187486..1a79982 100644
--- a/core_manager.hpp
+++ b/core_manager.hpp
@@ -15,6 +15,16 @@
 using Watch = phosphor::dump::inotify::Watch;
 using UserMap = phosphor::dump::inotify::UserMap;
 
+/** workaround: Watches for IN_CREATE event for the
+ *  ubi filesystem based systemd-coredump core path
+ *  Refer openbmc/issues/#2287 for more details.
+ */
+#ifdef UBI_CORE_FILE_WORKAROUND
+    static constexpr auto coreFileEvent = IN_CREATE;
+#else
+    static constexpr auto coreFileEvent = IN_CLOSE_WRITE;
+#endif
+
 /** @class Manager
  *  @brief OpenBMC Core manager implementation.
  */
@@ -35,7 +45,7 @@
             eventLoop(event.get()),
             coreWatch(eventLoop,
                       IN_NONBLOCK,
-                      IN_CLOSE_WRITE,
+                      coreFileEvent,
                       EPOLLIN,
                       CORE_FILE_DIR,
                       std::bind(
