diff --git a/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasActionInitialization.h b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasActionInitialization.h
new file mode 100644
index 0000000000000000000000000000000000000000..490a11962a7a95a42011e4f498288f5d35b6db2d
--- /dev/null
+++ b/Simulation/G4Atlas/G4AtlasAlg/G4AtlasAlg/G4AtlasActionInitialization.h
@@ -0,0 +1,27 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef G4ATLASALG_G4ATLASACTIONINITIALIZATION_H
+#define G4ATLASALG_G4ATLASACTIONINITIALIZATION_H 1
+
+#include "G4VUserActionInitialization.hh"
+#include "G4AtlasInterfaces/IUserActionSvc.h"
+
+/// Action initialization class.
+///
+
+class G4AtlasActionInitialization : public G4VUserActionInitialization
+{
+public:
+  G4AtlasActionInitialization(G4UA::IUserActionSvc* userActionSvc);
+  virtual ~G4AtlasActionInitialization();
+
+  virtual void BuildForMaster() const;
+  virtual void Build() const;
+
+private:
+  G4UA::IUserActionSvc* m_userActionSvc{};
+};
+
+#endif //G4ATLASALG_G4ATLASACTIONINITIALIZATION_H
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasActionInitialization.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasActionInitialization.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..cf1a6dd3a56ee9d4e2bfb5a2fc096929a432e8b7
--- /dev/null
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasActionInitialization.cxx
@@ -0,0 +1,45 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "G4AtlasAlg/G4AtlasActionInitialization.h"
+#if G4VERSION_NUMBER >= 1070
+#include "G4Exception.hh"
+#else
+#include "globals.hh"
+#endif
+
+G4AtlasActionInitialization::G4AtlasActionInitialization(G4UA::IUserActionSvc* userActionSvc)
+  : G4VUserActionInitialization()
+  , m_userActionSvc(userActionSvc)
+{}
+
+
+G4AtlasActionInitialization::~G4AtlasActionInitialization()
+{}
+
+
+void G4AtlasActionInitialization::BuildForMaster() const
+{
+  G4VUserActionInitialization::BuildForMaster();
+  // TODO Ideally separate "master" versions of the G4RunActions would
+  // be created, but this will require a larger redesign. See
+  // https://gitlab.cern.ch/geant4/geant4/-/blob/master/examples/basic/B4/B4a/src/B4aActionInitialization.cc#L52
+}
+
+
+void G4AtlasActionInitialization::Build() const
+{
+  if (!m_userActionSvc) {
+    G4ExceptionDescription description;
+    description << "Build: UserActionSvc is NULL.";
+    G4Exception("G4AtlasActionInitialization", "NoUserActionSvc", FatalException, description);
+    abort(); // to keep Coverity happy
+  }
+  if (m_userActionSvc->initializeActions().isFailure()) { //Consider renaming to buildActions()?
+    G4ExceptionDescription description;
+    description << "Build: Failed to create UserActions.";
+    G4Exception("G4AtlasActionInitialization", "CouldNotBuildActions", FatalException, description);
+    abort(); // to keep Coverity happy
+  }
+}