diff --git a/applications/utilities/mesh/generation/blockMesh/addOptions.H b/applications/utilities/mesh/generation/blockMesh/addOptions.H
index a0f494e4833c50d7f2d60a7b4574c629e5a5348c..c9e07df5a6fdfb000affca1352440f2c938411a8 100644
--- a/applications/utilities/mesh/generation/blockMesh/addOptions.H
+++ b/applications/utilities/mesh/generation/blockMesh/addOptions.H
@@ -1,3 +1,4 @@
     argList::noParallel();
     argList::validOptions.insert("blockTopology", "");
+    argList::validOptions.insert("dict", "dictionary");
 #   include "addRegionOption.H"
diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
index c13d906392d0b55ec12d744be30fe19f9266da7e..e337b0d1678495f33304ff2fa3bd4653283161e7 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
@@ -77,11 +77,21 @@ int main(int argc, char *argv[])
 
     Info<< nl << "Reading block mesh description dictionary" << endl;
 
+    word dictName("blockMeshDict");
+    fileName dictPath(runTime.constant()/polyMeshDir);
+
+    if (args.options().found("dict"))
+    {
+        fileName userDict(args.options()["dict"]);
+
+        dictName = userDict.name();
+        dictPath = userDict.path();
+    }
+
     IOobject meshDescriptionIOobject
     (
-        "blockMeshDict",
-        runTime.constant(),
-        polyMeshDir,
+        dictName,
+        dictPath,
         runTime,
         IOobject::MUST_READ,
         IOobject::NO_WRITE,
@@ -91,13 +101,14 @@ int main(int argc, char *argv[])
     if (!meshDescriptionIOobject.headerOk())
     {
         FatalErrorIn(args.executable())
-            << "Cannot open mesh description file " << nl
-            << runTime.constant()/polyMeshDir/"blockMeshDict" << nl
+            << "Cannot open mesh description file: " << nl
+            << dictPath/dictName << nl
             << exit(FatalError);
     }
 
     IOdictionary meshDescription(meshDescriptionIOobject);
 
+
     Info<< nl << "Creating block mesh" << endl;
 
     blockMesh blocks(meshDescription);