diff --git a/corsika/detail/modules/epos/Interaction.inl b/corsika/detail/modules/epos/Interaction.inl
index 8f73349a4802388c456049dcef53cfeb30643410..79cc7cd0ab644fcc66b946e713081a8c7e870443 100644
--- a/corsika/detail/modules/epos/Interaction.inl
+++ b/corsika/detail/modules/epos/Interaction.inl
@@ -63,7 +63,7 @@ namespace corsika::epos {
   }
 
   inline bool Interaction::isValidTarget(Code const TargetId) const {
-    if (is_nucleus(TargetId))
+    if (is_nucleus(TargetId)) {
       if (TargetId == Code::Nucleus) {
         // nuclearExtension for projectiles only
         CORSIKA_LOGGER_WARN(logger_,
@@ -75,7 +75,9 @@ namespace corsika::epos {
       } else {
         return (get_nucleus_Z(TargetId) < maxTargetMassNumber_ ? true : false);
       }
-    return false;
+    } else {
+      return false;
+    }
   }
 
   inline void Interaction::initialize_eposlhc_c7() const {
@@ -532,7 +534,11 @@ namespace corsika::epos {
 
       ::epos::afinal_();
 
-      if (epos_listing_) ::epos::alistf_("EPOSLHC&");
+      if (epos_listing_) {
+        //std::string nam = "EPOSLHC&";
+        char nam[9] = "EPOSLHC&";
+        ::epos::alistf_(nam);
+      }
 
       // NSTORE-part
 
diff --git a/corsika/detail/modules/epos/ParticleConversion.inl b/corsika/detail/modules/epos/ParticleConversion.inl
index 159bea41133c022ce3236e542a1495899e818c57..d23b800c945be7ab2be175fe2d184fc9daaae6d1 100644
--- a/corsika/detail/modules/epos/ParticleConversion.inl
+++ b/corsika/detail/modules/epos/ParticleConversion.inl
@@ -9,7 +9,6 @@
 #pragma once
 
 #include <corsika/framework/core/ParticleProperties.hpp>
-
 #include <epos.hpp>
 
 namespace corsika::epos {
@@ -26,4 +25,15 @@ namespace corsika::epos {
       return sqrt(mass2) * 1_GeV;
     }
   }
+
+  inline PDGCode getEposPDGId(Code const p) {
+    if (!is_nucleus(p)) {
+      int eid = corsika::epos::convertToEposRaw(p);
+      char nxs[4] = "nxs";
+      char pdg[4] = "pdg";
+      return static_cast<PDGCode>(::epos::idtrafo_(nxs, pdg, eid));
+    } else {
+      throw std::runtime_error("Epos id conversion not implemented for nuclei!");
+    }
+  }
 } // namespace corsika::epos
diff --git a/corsika/modules/epos/ParticleConversion.hpp b/corsika/modules/epos/ParticleConversion.hpp
index afa03cc4e0cfdb920b6a7f994ee9a5404200b247..252ebea38eb9ca5311ef919af46c7abc6e395c4e 100644
--- a/corsika/modules/epos/ParticleConversion.hpp
+++ b/corsika/modules/epos/ParticleConversion.hpp
@@ -62,6 +62,8 @@ namespace corsika::epos {
 
   HEPMassType getEposMass(corsika::Code const);
 
+  PDGCode getEposPDGId(corsika::Code const);
+
 } // namespace corsika::epos
 
 #include <corsika/detail/modules/epos/ParticleConversion.inl>
diff --git a/tests/modules/testEpos.cpp b/tests/modules/testEpos.cpp
index 5270f0eee5565a2eb3fef5da2fec65f6906fd082..68b31673dea48ae9f36f52951671727e675f34ed 100644
--- a/tests/modules/testEpos.cpp
+++ b/tests/modules/testEpos.cpp
@@ -82,11 +82,9 @@ TEST_CASE("Epos", "[processes]") {
       if (!is_nucleus(p)) {
         int eid = corsika::epos::convertToEposRaw(p);
         if (eid == 0 && p != Code::Unknown)
-          CHECK_FALSE(p == convert_from_PDG(static_cast<PDGCode>(
-                               ::epos::idtrafo_("nxs", "pdg", eid))));
+          CHECK_FALSE(p == convert_from_PDG(getEposPDGId(p)));
         else
-          CHECK(p == convert_from_PDG(
-                         static_cast<PDGCode>(::epos::idtrafo_("nxs", "pdg", eid))));
+          CHECK(p == convert_from_PDG(getEposPDGId(p)));
       }
     }
   }