diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C
index 701c0dbbc077d1f58f5b92cff33265c6cefb711f..adedede35d2733bf4083497757b4e69da821fca5 100644
--- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C
+++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementRefine.C
@@ -35,7 +35,6 @@ License
 #include "fvMeshDistribute.H"
 #include "polyTopoChange.H"
 #include "mapDistributePolyMesh.H"
-#include "featureEdgeMesh.H"
 #include "Cloud.H"
 //#include "globalIndex.H"
 #include "OBJstream.H"
@@ -358,7 +357,7 @@ void Foam::meshRefinement::markFeatureCellLevel
 
         forAll(features_, featI)
         {
-            const featureEdgeMesh& featureMesh = features_[featI];
+            const edgeMesh& featureMesh = features_[featI];
             const label featureLevel = features_.levels()[featI][0];
             const labelListList& pointEdges = featureMesh.pointEdges();
 
@@ -505,7 +504,7 @@ void Foam::meshRefinement::markFeatureCellLevel
         label featI = startTp.i();
         label pointI = startTp.j();
 
-        const featureEdgeMesh& featureMesh = features_[featI];
+        const edgeMesh& featureMesh = features_[featI];
         const labelList& pEdges = featureMesh.pointEdges()[pointI];
 
         // Now shoot particles down all pEdges.
@@ -561,7 +560,7 @@ void Foam::meshRefinement::markFeatureCellLevel
             label featI = tp.i();
             label pointI = tp.j();
 
-            const featureEdgeMesh& featureMesh = features_[featI];
+            const edgeMesh& featureMesh = features_[featI];
             const labelList& pEdges = featureMesh.pointEdges()[pointI];
 
             // Particle now at pointI. Check connected edges to see which one
diff --git a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
index f2b730bc9d3ca5e00e832f375723c4a20cc37f40..b2b974de02f304b28b7ebdb841e4bf696ea1d082 100644
--- a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
+++ b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.C
@@ -186,7 +186,7 @@ void Foam::refinementFeatures::read
             set(featI, new extendedFeatureEdgeMesh(featObj, eeMesh));
         }
 
-        const edgeMesh& eMesh = operator[](featI);
+        const extendedEdgeMesh& eMesh = operator[](featI);
 
         //eMesh.mergePoints(meshRefiner_.mergeDistance());
 
@@ -258,13 +258,9 @@ void Foam::refinementFeatures::read
 }
 
 
-void Foam::refinementFeatures::buildTrees
-(
-    const label featI,
-    const labelList& featurePoints
-)
+void Foam::refinementFeatures::buildTrees(const label featI)
 {
-    const edgeMesh& eMesh = operator[](featI);
+    const extendedEdgeMesh& eMesh = operator[](featI);
     const pointField& points = eMesh.points();
     const edgeList& edges = eMesh.edges();
 
@@ -299,6 +295,9 @@ void Foam::refinementFeatures::buildTrees
         )
     );
 
+
+    labelList featurePoints(identity(eMesh.nonFeatureStart()));
+
     pointTrees_.set
     (
         featI,
@@ -408,24 +407,7 @@ Foam::refinementFeatures::refinementFeatures
     // Search engines
     forAll(*this, i)
     {
-        const extendedEdgeMesh& eMesh = operator[](i);
-        const labelListList& pointEdges = eMesh.pointEdges();
-
-        DynamicList<label> featurePoints;
-        forAll(pointEdges, pointI)
-        {
-            if (pointEdges[pointI].size() > 2)
-            {
-                featurePoints.append(pointI);
-            }
-        }
-
-        Info<< "Detected " << featurePoints.size()
-            << " featurePoints out of " << pointEdges.size()
-            << " points on feature " << operator[](i).name()
-            << endl;
-
-        buildTrees(i, featurePoints);
+        buildTrees(i);
     }
 }
 
diff --git a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.H b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.H
index 4cfaf20ffaf80de715f17f367e5ae3f1bcb5bf3c..7d27090b14780e8d251701f8c0de8c2757c8f4c6 100644
--- a/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.H
+++ b/src/mesh/autoMesh/autoHexMesh/refinementFeatures/refinementFeatures.H
@@ -76,7 +76,7 @@ private:
         void read(const objectRegistry&, const PtrList<dictionary>&);
 
         //- Build edge tree and feature point tree
-        void buildTrees(const label, const labelList&);
+        void buildTrees(const label);
 
         //- Find shell level higher than ptLevel
         void findHigherLevel