diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
index 93e4f6269098cbee0eb5550804b34a1a96467028..debb7b05887894fd43e7a6a2f2843873705df512 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
+++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C
@@ -370,7 +370,10 @@ int main(int argc, char *argv[])
 
     DynamicList<vector> normals(2*nFeatEds);
     vectorField edgeDirections(nFeatEds, vector::zero);
-    DynamicList<label> normalVolumeTypes(2*nFeatEds);
+    DynamicList<extendedFeatureEdgeMesh::sideVolumeType> normalVolumeTypes
+    (
+        2*nFeatEds
+    );
     List<DynamicList<label> > edgeNormals(nFeatEds);
     List<DynamicList<label> > normalDirections(nFeatEds);
 
@@ -551,7 +554,10 @@ int main(int argc, char *argv[])
     // Region edges are not explicitly supported by surfaceIntersection
 
     vectorField normalsTmp(normals);
-    PackedList<2> normalVolumeTypesTmp(normalVolumeTypes);
+    List<extendedFeatureEdgeMesh::sideVolumeType> normalVolumeTypesTmp
+    (
+        normalVolumeTypes
+    );
     labelListList edgeNormalsTmp(edgeNormals.size());
     forAll(edgeNormalsTmp, i)
     {
diff --git a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
index 50e3e3e4580ecf06293a338ecb4231aecd6d2a37..05c86b78833d8d5be4a7fb429769e5a40af76720 100644
--- a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
+++ b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
@@ -1380,4 +1380,40 @@ bool Foam::extendedFeatureEdgeMesh::writeData(Ostream& os) const
 }
 
 
+Foam::Istream& Foam::operator>>
+(
+    Istream& is,
+    Foam::extendedFeatureEdgeMesh::sideVolumeType& vt
+)
+{
+    // Read beginning of sideVolumeType
+    is.readBegin("sideVolumeType");
+
+    int type;
+    is  >> type;
+
+    vt = static_cast<Foam::extendedFeatureEdgeMesh::sideVolumeType>(type);
+
+    // Read end of volumeType
+    is.readEnd("sideVolumeType");
+
+    // Check state of Istream
+    is.check("operator>>(Istream&, sideVolumeType&)");
+
+    return is;
+}
+
+
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const Foam::extendedFeatureEdgeMesh::sideVolumeType& vt
+)
+{
+    os  << static_cast<int>(vt);
+
+    return os;
+}
+
+
 // ************************************************************************* //
diff --git a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
index ead6ef63ca14c53fec333d4b5559a402c95f9d8d..dec5c416965d8c2a98bed81581f3f1a8ed67737f 100644
--- a/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
+++ b/src/edgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.H
@@ -465,6 +465,9 @@ public:
 
             //- WriteData function required for regIOobject write operation
             virtual bool writeData(Ostream&) const;
+
+            friend Istream& operator>>(Istream& is, sideVolumeType& vt);
+            friend Ostream& operator<<(Ostream& os, const sideVolumeType& vt);
 };