diff --git a/dracut-kdump-emergency.service b/dracut-kdump-emergency.service
index e023284..f2f6fad 100644
--- a/dracut-kdump-emergency.service
+++ b/dracut-kdump-emergency.service
@@ -1,27 +1,26 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-# This service will be placed in kdump initramfs and replace both the systemd
-# emergency service and dracut emergency shell. IOW, any emergency will be
-# kick this service and in turn isolating to kdump error handler.
+# This service will run the real kdump error handler code. Executing the
+# failure action configured in kdump.conf
 
 [Unit]
-Description=Kdump Emergency
+Description=Kdump Error Handler
 DefaultDependencies=no
-IgnoreOnIsolate=yes
+After=systemd-vconsole-setup.service
+Wants=systemd-vconsole-setup.service
 
 [Service]
-ExecStart=/usr/bin/systemctl --no-block isolate kdump-error-handler.service
+Environment=HOME=/
+Environment=DRACUT_SYSTEMD=1
+Environment=NEWROOT=/sysroot
+WorkingDirectory=/
+ExecStart=/bin/kdump-error-handler.sh
+ExecStopPost=-/bin/rm -f -- /.console_lock
 Type=oneshot
 StandardInput=tty-force
 StandardOutput=inherit
 StandardError=inherit
 KillMode=process
 IgnoreSIGPIPE=no
+TasksMax=infinity
 
 # Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
 # terminates cleanly.
diff --git a/dracut-kdump-error-handler.service b/dracut-kdump-error-handler.service
deleted file mode 100644
index a23b75e..0000000
--- a/dracut-kdump-error-handler.service
+++ /dev/null
@@ -1,33 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU Lesser General Public License as published by
-#  the Free Software Foundation; either version 2.1 of the License, or
-#  (at your option) any later version.
-
-# This service will run the real kdump error handler code. Executing the
-# failure action configured in kdump.conf
-
-[Unit]
-Description=Kdump Error Handler
-DefaultDependencies=no
-After=systemd-vconsole-setup.service
-Wants=systemd-vconsole-setup.service
-AllowIsolate=yes
-
-[Service]
-Environment=HOME=/
-Environment=DRACUT_SYSTEMD=1
-Environment=NEWROOT=/sysroot
-WorkingDirectory=/
-ExecStart=/bin/kdump-error-handler.sh
-Type=oneshot
-StandardInput=tty-force
-StandardOutput=inherit
-StandardError=inherit
-KillMode=process
-IgnoreSIGPIPE=no
-
-# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
-# terminates cleanly.
-KillSignal=SIGHUP
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index c416368..c006efb 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -1023,7 +1023,6 @@ install() {
     inst "$moddir/kdump-capture.service" "$systemdsystemunitdir/kdump-capture.service"
     systemctl -q --root "$initdir" add-wants initrd.target kdump-capture.service
     inst "$moddir/kdump-error-handler.sh" "/usr/bin/kdump-error-handler.sh"
-    inst "$moddir/kdump-error-handler.service" "$systemdsystemunitdir/kdump-error-handler.service"
     # Replace existing emergency service and emergency target
     cp "$moddir/kdump-emergency.service" "$initdir/$systemdsystemunitdir/emergency.service"
     cp "$moddir/kdump-emergency.target" "$initdir/$systemdsystemunitdir/emergency.target"
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 8e1d2d9..0beca0c 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -49,7 +49,6 @@ Source101: dracut-module-setup.sh
 Source102: dracut-monitor_dd_progress
 Source103: dracut-kdump-error-handler.sh
 Source104: dracut-kdump-emergency.service
-Source105: dracut-kdump-error-handler.service
 Source106: dracut-kdump-capture.service
 Source107: dracut-kdump-emergency.target
 Source108: dracut-early-kdump.sh
@@ -221,7 +220,6 @@ cp %{SOURCE101} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpb
 cp %{SOURCE102} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE102}}
 cp %{SOURCE103} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE103}}
 cp %{SOURCE104} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE104}}
-cp %{SOURCE105} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE105}}
 cp %{SOURCE106} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE106}}
 cp %{SOURCE107} $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE107}}
 chmod 755 $RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix %{SOURCE100}}