diff --git a/dumux/porousmediumflow/nonequilibrium/indices.hh b/dumux/porousmediumflow/nonequilibrium/indices.hh
index 0bd3dca45cefb3e449d1a71a283d13bcae833864..3ff9b9d5906e5435504c07586744ba170e39ea65 100644
--- a/dumux/porousmediumflow/nonequilibrium/indices.hh
+++ b/dumux/porousmediumflow/nonequilibrium/indices.hh
@@ -33,22 +33,21 @@ namespace Dumux
  * \ingroup PorousmediumNonEquilibriumModel
  * \brief The primary variable and equation indices for the MpNc model.
  */
-template <class TypeTag, int BasePVOffset = 0>
-class NonEquilbriumIndices: public GET_PROP_TYPE(TypeTag, EquilibriumIndices)
+template <class EquilibriumIndices, class FluidSystem, int numEnergyEquationFluid, int numEnergyEquationSolid, int numEquationBalance, int BasePVOffset = 0>
+class NonEquilbriumIndices: public EquilibriumIndices
 {
 public:
-     using FluidSystem  = typename GET_PROP_TYPE(TypeTag, FluidSystem);
      enum { numPhases = FluidSystem::numPhases };
-     enum { numEnergyEqFluid = GET_PROP_VALUE(TypeTag, NumEnergyEqFluid) };
-     enum { numEnergyEqSolid = GET_PROP_VALUE(TypeTag, NumEnergyEqSolid) };
+     enum { numEnergyEqFluid = numEnergyEquationFluid };
+     enum { numEnergyEqSolid = numEnergyEquationSolid };
      /*! \todo Replacing the sum below with GET_PROP_VALUE(TypeTag, NumEq)
       *        yields a compilation error with clang, due to complex
       *        interdependencies of MPNC and NonEquilibrium type tags and
       *        Indices classes. This should be fixed.
       */
-     static const unsigned int numEq = GET_PROP_VALUE(TypeTag, NumEqBalance)
-                                     + GET_PROP_VALUE(TypeTag, NumEnergyEqFluid)
-                                     + GET_PROP_VALUE(TypeTag, NumEnergyEqSolid);
+     static const unsigned int numEq = numEquationBalance
+                                     + numEnergyEqFluid
+                                     + numEnergyEqSolid;
 
     /*!
      * \brief Index for the temperature of the wetting phase in a vector of primary
diff --git a/dumux/porousmediumflow/nonequilibrium/model.hh b/dumux/porousmediumflow/nonequilibrium/model.hh
index 21c3043e86ba0e66367deae9b99f3890dfee47b8..ce3385be411991ed1a2299a3e0238f7add8536e7 100644
--- a/dumux/porousmediumflow/nonequilibrium/model.hh
+++ b/dumux/porousmediumflow/nonequilibrium/model.hh
@@ -75,7 +75,17 @@ SET_TYPE_PROP(NonEquilibrium, HeatConductionType , FouriersLawNonEquilibrium<Typ
 SET_INT_PROP(NonEquilibrium, NumEq, GET_PROP_VALUE(TypeTag, NumEqBalance) +  GET_PROP_VALUE(TypeTag, NumEnergyEqFluid) + GET_PROP_VALUE(TypeTag, NumEnergyEqSolid));
 
 //! indices for non-isothermal models
-SET_TYPE_PROP(NonEquilibrium, Indices, NonEquilbriumIndices<TypeTag, 0>);
+SET_PROP(NonEquilibrium, Indices)
+{
+private:
+    using EquilibriumIndices = typename GET_PROP_TYPE(TypeTag, EquilibriumIndices);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    static constexpr int numEnergyEquationFluid = GET_PROP_VALUE(TypeTag, NumEnergyEqFluid);
+    static constexpr int numEnergyEquationSolid = GET_PROP_VALUE(TypeTag, NumEnergyEqSolid);
+    static constexpr int numEquationBalance = GET_PROP_VALUE(TypeTag, NumEqBalance);
+public:
+    using type = NonEquilbriumIndices<EquilibriumIndices, FluidSystem, numEnergyEquationFluid, numEnergyEquationSolid, numEquationBalance, 0>;
+};
 
 SET_PROP(NonEquilibrium, FluidState)
 {