diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
index a6556f143d3c1606ba075239cddc596f23de4d8c..f95b906f5f7ee0e6ce319b11575203d444887aaa 100644
--- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
+++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
@@ -156,6 +156,7 @@ int main(int argc, char *argv[])
     );
 
     #include "addOverwriteOption.H"
+    #include "addRegionOption.H"
     argList::validArgs.append("cellSet");
     argList::addOption
     (
@@ -167,7 +168,12 @@ int main(int argc, char *argv[])
     #include "setRootCase.H"
     #include "createTime.H"
     runTime.functionObjects().off();
-    #include "createMesh.H"
+
+    Foam::word meshRegionName = polyMesh::defaultRegion;
+    args.optionReadIfPresent("region", meshRegionName);
+
+    #include "createNamedMesh.H"
+
 
     const word oldInstance = mesh.pointsInstance();