diff --git a/src/thermophysicalModels/basic/heThermo/heThermo.C b/src/thermophysicalModels/basic/heThermo/heThermo.C
index 23441a9b79194e66a7c8c872699340e1186697f9..0cc1354ffa30e7999a6581b680bed8eff9c61e3e 100644
--- a/src/thermophysicalModels/basic/heThermo/heThermo.C
+++ b/src/thermophysicalModels/basic/heThermo/heThermo.C
@@ -799,60 +799,6 @@ Foam::heThermo<BasicThermo, MixtureType>::alphaEff
 }
 
 
-template<class BasicThermo, class MixtureType>
-Foam::scalar
-Foam::heThermo<BasicThermo, MixtureType>::Cp
-(
-    const label speciei,
-    const scalar p,
-    const scalar T
-) const
-{
-    notImplemented
-    (
-        "heThermo<BasicThermo, MixtureType>::"
-        "Cp(const label speciei, const scalar p, const scalar T)"
-    );
-    return 0;
-}
-
-
-template<class BasicThermo, class MixtureType>
-Foam::scalar
-Foam::heThermo<BasicThermo, MixtureType>::Cv
-(
-    const label speciei,
-    const scalar p,
-    const scalar T
-) const
-{
-    notImplemented
-    (
-        "heThermo<BasicThermo, MixtureType>::"
-        "Cv(const label speciei, const scalar p, const scalar T)"
-    );
-    return 0;
-}
-
-
-template<class BasicThermo, class MixtureType>
-Foam::scalar
-Foam::heThermo<BasicThermo, MixtureType>::kappa
-(
-    const label speciei,
-    const scalar p,
-    const scalar T
-) const
-{
-    notImplemented
-    (
-        "heThermo<BasicThermo, MixtureType>::"
-        "kappa(const label speciei, const scalar p, const scalar T)"
-    );
-    return 0;
-}
-
-
 template<class BasicThermo, class MixtureType>
 bool Foam::heThermo<BasicThermo, MixtureType>::read()
 {
diff --git a/src/thermophysicalModels/basic/heThermo/heThermo.H b/src/thermophysicalModels/basic/heThermo/heThermo.H
index 5bf3bdc93590fab97d8aa7d3aa416907bebe0b35..9858f16a31fdfedcd50c29fdb833a342667fb106 100644
--- a/src/thermophysicalModels/basic/heThermo/heThermo.H
+++ b/src/thermophysicalModels/basic/heThermo/heThermo.H
@@ -292,34 +292,6 @@ public:
             ) const;
 
 
-        // Dummy per-specie thermo properties to avoid problems
-        // with virtual function inheritance
-
-            //- Heat capacity at constant pressure [J/(kg K)]
-            virtual scalar Cp
-            (
-                const label speciei,
-                const scalar p,
-                const scalar T
-            ) const;
-
-            //- Heat capacity at constant volume [J/(kg K)]
-            virtual scalar Cv
-            (
-                const label speciei,
-                const scalar p,
-                const scalar T
-            ) const;
-
-            //- Thermal conductivity [W/m/K]
-            virtual scalar kappa
-            (
-                const label speciei,
-                const scalar p,
-                const scalar T
-            ) const;
-
-
         //- Read thermophysical properties dictionary
         virtual bool read();
 };
diff --git a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
index d54ce53f7e7720227375e4a2c5603f25bbea74e1..533caad0bfaed6531e9857de3e73f876bba5a0b3 100644
--- a/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
+++ b/src/thermophysicalModels/reactionThermo/mixtures/SpecieMixture/SpecieMixture.H
@@ -36,6 +36,7 @@ SourceFiles
 #define SpecieMixture_H
 
 #include "scalar.H"
+#include "volFields.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -184,6 +185,43 @@ public:
                 const scalar p,
                 const scalar T
             ) const;
+
+
+        // Field properties abstract functions
+        // provided here to avoid issues with inheritance of virtual functions
+        // in heThermo
+
+            //- Heat capacity at constant pressure for patch [J/kg/K]
+            virtual tmp<scalarField> Cp
+            (
+                const scalarField& p,
+                const scalarField& T,
+                const label patchi
+            ) const = 0;
+
+            //- Heat capacity at constant pressure for patch [J/kg/K]
+            virtual tmp<volScalarField> Cp() const = 0;
+
+            //- Heat capacity at constant volume for patch [J/kg/K]
+            virtual tmp<scalarField> Cv
+            (
+                const scalarField& p,
+                const scalarField& T,
+                const label patchi
+            ) const = 0;
+
+            //- Heat capacity at constant volume [J/kg/K]
+            virtual tmp<volScalarField> Cv() const = 0;
+
+            //- Thermal diffusivity for temperature
+            //  of mixture for patch [J/m/s/K]
+            virtual tmp<scalarField> kappa
+            (
+                const label patchi
+            ) const = 0;
+
+            //- Thermal diffusivity for temperature of mixture [J/m/s/K]
+            virtual tmp<volScalarField> kappa() const = 0;
 };