diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
index adac03499be76cad746566620c47b211041e5917..c3424ff451e727d1c322f957b7649038f27341ba 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C
@@ -122,7 +122,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_("surfaceFilmProperties"),
     pyrolysisRegionName_("pyrolysisProperties"),
     TnbrName_("undefined-Tnbr"),
-    QrNbrName_("undefined-QrNbr"),
     QrName_("undefined-Qr"),
     convectiveScaling_(1.0),
     filmDeltaDry_(0.0),
@@ -148,7 +147,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
     QrName_(psf.QrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
@@ -175,7 +173,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
         dict.lookupOrDefault<word>("pyrolysisRegion", "pyrolysisProperties")
     ),
     TnbrName_(dict.lookup("Tnbr")),
-    QrNbrName_(dict.lookup("QrNbr")),
     QrName_(dict.lookup("Qr")),
     convectiveScaling_(dict.lookupOrDefault<scalar>("convectiveScaling", 1.0)),
     filmDeltaDry_(readScalar(dict.lookup("filmDeltaDry"))),
@@ -231,7 +228,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
     filmRegionName_(psf.filmRegionName_),
     pyrolysisRegionName_(psf.pyrolysisRegionName_),
     TnbrName_(psf.TnbrName_),
-    QrNbrName_(psf.QrNbrName_),
     QrName_(psf.QrName_),
     convectiveScaling_(psf.convectiveScaling_),
     filmDeltaDry_(psf.filmDeltaDry_),
@@ -241,8 +237,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::
-updateCoeffs()
+void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs()
 {
     if (updated())
     {
@@ -294,34 +289,49 @@ updateCoeffs()
     const pyrolysisModelType& pyrolysis = pyrModel();
     const filmModelType& film = filmModel();
 
-    label myPatchINrbPatchI = -1;
-
     // Obtain Rad heat (Qr)
     scalarField Qr(patch().size(), 0.0);
-    if (QrName_ != "none") // primary region (region0)
+
+    label coupledPatchI = -1;
+    if (pyrolysisRegionName_ == mesh.name())
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
-        myPatchINrbPatchI = nbrPatch.index();
+        coupledPatchI = patchI;
+        if (QrName_ != "none")
+        {
+            Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrName_);
+            mpp.distribute(Qr);
+        }
     }
-
-    if (QrNbrName_ != "none") // pyrolysis region
+    else if (pyrolysis.primaryMesh().name() == mesh.name())
+    {
+        coupledPatchI = nbrPatch.index();
+        if (QrName_ != "none")
+        {
+            Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        }
+    }
+    else
     {
-        Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrNbrName_);
-        mpp.distribute(Qr);
-        myPatchINrbPatchI = patchI;
+        FatalErrorIn
+        (
+            "void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::"
+            "updateCoeffs()"
+        )
+            << type() << " condition is intended to be applied to either the "
+            << "primary or pyrolysis regions only"
+            << exit(FatalError);
     }
 
-    const label filmPatchI =
-        pyrolysis.nbrCoupledPatchID(film, myPatchINrbPatchI);
+    const label filmPatchI = pyrolysis.nbrCoupledPatchID(film, coupledPatchI);
 
     const scalarField htcw(film.htcw().h()().boundaryField()[filmPatchI]);
 
     // Obtain htcw
     htcwfilm =
-        const_cast<pyrolysisModelType&>(pyrolysis).mapRegionPatchField
+        pyrolysis.mapRegionPatchField
         (
             film,
-            myPatchINrbPatchI,
+            coupledPatchI,
             filmPatchI,
             htcw,
             true
@@ -335,11 +345,11 @@ updateCoeffs()
 
     // Obtain delta
     filmDelta =
-        const_cast<pyrolysisModelType&>(pyrolysis).mapRegionPatchField<scalar>
+        pyrolysis.mapRegionPatchField<scalar>
         (
             film,
             "deltaf",
-            myPatchINrbPatchI,
+            coupledPatchI,
             true
         );
 
@@ -414,14 +424,13 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::write
         pyrolysisRegionName_
     );
     os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("QrNbr")<< QrNbrName_ << token::END_STATEMENT << nl;
     os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
     os.writeKeyword("convectiveScaling") << convectiveScaling_
-    << token::END_STATEMENT << nl;
-    os.writeKeyword("filmDeltaDry") << filmDeltaDry_ <<
-    token::END_STATEMENT << nl;
-    os.writeKeyword("filmDeltaWet") << filmDeltaWet_ <<
-    token::END_STATEMENT << endl;
+        << token::END_STATEMENT << nl;
+    os.writeKeyword("filmDeltaDry") << filmDeltaDry_
+        << token::END_STATEMENT << nl;
+    os.writeKeyword("filmDeltaWet") << filmDeltaWet_
+        << token::END_STATEMENT << endl;
     temperatureCoupledBase::write(os);
 }
 
diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
index e4161e1bfc99a036b8e8603a1815bf900180e941..67788bd3c70018ec678b124686ecf4cc4ddbaf06 100644
--- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
+++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H
@@ -38,7 +38,6 @@ Description
             type            filmPyrolysisRadiativeCoupledMixed;
             Tnbr            T;
             kappa           fluidThermo;
-            QrNbr           none;
             Qr              Qr;
             kappaName       none;
             filmDeltaDry    0.0;
@@ -91,7 +90,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-   Class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField Declaration
+    Class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField Declaration
 \*---------------------------------------------------------------------------*/
 
 class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField
@@ -121,10 +120,7 @@ private:
         //- Name of field on the neighbour region
         const word TnbrName_;
 
-         //- Name of the radiative heat flux in the neighbout region
-        const word QrNbrName_;
-
-        //- Name of the radiative heat flux in local region
+        //- Name of the radiative heat flux
         const word QrName_;
 
         //- Convective Scaling Factor (as determined by Prateep's tests)
diff --git a/src/regionModels/regionModel/regionModel/regionModel.C b/src/regionModels/regionModel/regionModel/regionModel.C
index 388559c18b83317a06c2dd92a93dd58bf5662269..5bf2951451580c3dd9a527a59088a88b5e97e3cd 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.C
+++ b/src/regionModels/regionModel/regionModel/regionModel.C
@@ -197,7 +197,7 @@ Foam::regionModels::regionModel::interRegionAMI
     const label regionPatchI,
     const label nbrPatchI,
     const bool flip
-)
+) const
 {
     label nbrRegionID = findIndex(interRegionAMINames_, nbrRegion.name());
 
diff --git a/src/regionModels/regionModel/regionModel/regionModel.H b/src/regionModels/regionModel/regionModel/regionModel.H
index 1b8fecababc793e85e9139352ceb4c60748208cd..83afc6898be4f61e57fbced338b25a8b19536af3 100644
--- a/src/regionModels/regionModel/regionModel/regionModel.H
+++ b/src/regionModels/regionModel/regionModel/regionModel.H
@@ -125,10 +125,11 @@ protected:
         // Inter-region AMI interpolation caching
 
             //- List of region names this region is coupled to
-            wordList interRegionAMINames_;
+            mutable wordList interRegionAMINames_;
 
             //- List of AMI objects per coupled region
-            PtrList<PtrList<AMIPatchToPatchInterpolation> > interRegionAMI_;
+            mutable PtrList<PtrList<AMIPatchToPatchInterpolation> >
+                interRegionAMI_;
 
 
     // Protected member functions
@@ -146,7 +147,7 @@ protected:
             const label regionPatchI,
             const label nbrPatchI,
             const bool flip
-        );
+        ) const;
 
 
 public:
@@ -257,7 +258,7 @@ public:
                 const label nbrPatchI,
                 const Field<Type>& nbrField,
                 const bool flip = false
-            );
+            ) const;
 
             //- Map patch field from another region model to local patch
             template<class Type>
@@ -267,7 +268,7 @@ public:
                 const word& fieldName,
                 const label regionPatchI,
                 const bool flip = false
-            );
+            ) const;
 
             //- Map patch internal field from another region model to local
             //  patch
@@ -278,7 +279,7 @@ public:
                 const word& fieldName,
                 const label regionPatchI,
                 const bool flip = false
-            );
+            ) const;
 
             //- Convert a local region field to the primary region
             template<class Type>
diff --git a/src/regionModels/regionModel/regionModel/regionModelTemplates.C b/src/regionModels/regionModel/regionModel/regionModelTemplates.C
index 5855ee5906140583195366d71df9d507bab9b608..dad46878ab268484f571b0f166a2c54c83c2849d 100644
--- a/src/regionModels/regionModel/regionModel/regionModelTemplates.C
+++ b/src/regionModels/regionModel/regionModel/regionModelTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -32,7 +32,7 @@ Foam::regionModels::regionModel::mapRegionPatchField
     const label nbrPatchI,
     const Field<Type>& nbrField,
     const bool flip
-)
+) const
 {
     int oldTag = UPstream::msgType();
     UPstream::msgType() = oldTag + 1;
@@ -56,7 +56,7 @@ Foam::regionModels::regionModel::mapRegionPatchField
     const word& fieldName,
     const label regionPatchI,
     const bool flip
-)
+) const
 {
     typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
 
@@ -108,7 +108,7 @@ Foam::regionModels::regionModel::mapRegionPatchInternalField
     const word& fieldName,
     const label regionPatchI,
     const bool flip
-)
+) const
 {
     typedef GeometricField<Type, fvPatchField, volMesh> fieldType;