diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H
index e0355c19835b0f943238c7ef5d323ae9ab514f8c..e5995a403d5c6ffa5e04011f94b77ed07f6191de 100644
--- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H
+++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H
@@ -53,7 +53,7 @@ protected:
 
     // Protected data
 
-        const dictionary decompositionDict_;
+        const dictionary& decompositionDict_;
         label nProcessors_;
 
 
diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
index 5822d6a6710e63a652843acda29334db6dafe5b0..cb9ec502c5c790fbf57bf6aaf1a63f12b842b954 100644
--- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C
@@ -312,13 +312,12 @@ void Foam::multiLevelDecomp::decompose
 
 Foam::multiLevelDecomp::multiLevelDecomp(const dictionary& decompositionDict)
 :
-    decompositionMethod(decompositionDict)
+    decompositionMethod(decompositionDict),
+    methodsDict_(decompositionDict_.subDict(typeName + "Coeffs"))
 {
-    const dictionary& myDict = decompositionDict_.subDict(typeName + "Coeffs");
-
-    methods_.setSize(myDict.size());
+    methods_.setSize(methodsDict_.size());
     label i = 0;
-    forAllConstIter(dictionary, myDict, iter)
+    forAllConstIter(dictionary, methodsDict_, iter)
     {
         methods_.set(i++, decompositionMethod::New(iter().dict()));
     }
diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H
index 7a41da06fb822626f041bdb3f5460f34c62ab83d..a805bfacf8786362ec9b6332dc3731c5520fa048 100644
--- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H
+++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H
@@ -50,6 +50,8 @@ class multiLevelDecomp
 {
     // Private data
 
+        dictionary methodsDict_;
+
         PtrList<decompositionMethod> methods_;
 
 
diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
index 9843b4550b76583b7024cf7b15ada24c01c6533a..32f86c82c83f6c08afcf840abdee572d22c06be6 100644
--- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
+++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C
@@ -49,12 +49,12 @@ namespace Foam
 
 Foam::structuredDecomp::structuredDecomp(const dictionary& decompositionDict)
 :
-    decompositionMethod(decompositionDict)
+    decompositionMethod(decompositionDict),
+    methodDict_(decompositionDict_.subDict(typeName + "Coeffs"))
 {
-    dictionary myDict = decompositionDict_.subDict(typeName + "Coeffs");
-    myDict.set("numberOfSubdomains", nDomains());
-    method_ = decompositionMethod::New(myDict);
-    patches_ = wordList(myDict.lookup("patches"));
+    methodDict_.set("numberOfSubdomains", nDomains());
+    method_ = decompositionMethod::New(methodDict_);
+    patches_ = wordList(methodDict_.lookup("patches"));
 }
 
 
diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H
index d3f17687c6a7fe229d5f624aa0340d215d1806d5..dc316e7a4ddbe253b72433380007515ddab173b7 100644
--- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H
+++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H
@@ -50,6 +50,8 @@ class structuredDecomp
 {
     // Private data
 
+        dictionary methodDict_;
+
         autoPtr<decompositionMethod> method_;
 
         wordList patches_;
@@ -57,32 +59,6 @@ class structuredDecomp
 
     // Private Member Functions
 
-        //- Given connectivity across processors work out connectivity
-        //  for a (consistent) subset
-        void subsetGlobalCellCells
-        (
-            const label nDomains,
-            const label domainI,
-            const labelList& dist,
-
-            const labelListList& cellCells,
-            const labelList& set,
-            labelListList& subCellCells,
-            labelList& cutConnections
-        ) const;
-
-        //- Decompose level methodI without addressing
-        void decompose
-        (
-            const labelListList& pointPoints,
-            const pointField& points,
-            const scalarField& pointWeights,
-            const labelList& pointMap,  // map back to original points
-            const label levelI,
-
-            labelField& finalDecomp
-        );
-
         //- Disallow default bitwise copy construct and assignment
         void operator=(const structuredDecomp&);
         structuredDecomp(const structuredDecomp&);