diff --git a/src/c/CudaMex.vcxproj b/src/c/CudaMex.vcxproj
index 3860364c274dcf477f3cd48f6ad311501a84e641..d70e3a1cbcdea62a3af38757e39f226bf2855ada 100644
--- a/src/c/CudaMex.vcxproj
+++ b/src/c/CudaMex.vcxproj
@@ -127,6 +127,7 @@ copy $(OutDir)CudaMex.dll "$(ProjectDir)Mex.mexw64"</Command>
     <ClInclude Include="ScriptCmds\Commands\ScrCmdVarFilter.h" />
     <ClInclude Include="ScriptCmds\Commands\ScrCmdWienerFilter.h" />
     <ClInclude Include="ScriptCmds\GenCommands.h" />
+    <ClInclude Include="ScriptCmds\HydraConfig.h" />
     <ClInclude Include="ScriptCmds\ScopedProcessMutex.h" />
     <ClInclude Include="ScriptCmds\ScriptCommand.h" />
     <ClInclude Include="ScriptCmds\ScriptCommandDefines.h" />
diff --git a/src/c/CudaMex.vcxproj.filters b/src/c/CudaMex.vcxproj.filters
index c2c47e840223cd7deffa8271faff20c01b8c16de..e7285431b74f8e2cb2a64ebd9a22dde046c94c46 100644
--- a/src/c/CudaMex.vcxproj.filters
+++ b/src/c/CudaMex.vcxproj.filters
@@ -156,6 +156,9 @@
     <ClInclude Include="ScriptCmds\ScopedProcessMutex.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="ScriptCmds\HydraConfig.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Mex\CudaMex.cpp">
diff --git a/src/c/CudaPy3DLL.vcxproj b/src/c/CudaPy3DLL.vcxproj
index d1fb77e7d418063d65e5544060ccef899f0c0b0e..6801ec4411cf58bca4cff8b32bd8c7a9c4adc89d 100644
--- a/src/c/CudaPy3DLL.vcxproj
+++ b/src/c/CudaPy3DLL.vcxproj
@@ -57,6 +57,7 @@
     <ClInclude Include="ScriptCmds\Commands\ScrCmdVarFilter.h" />
     <ClInclude Include="ScriptCmds\Commands\ScrCmdWienerFilter.h" />
     <ClInclude Include="ScriptCmds\GenCommands.h" />
+    <ClInclude Include="ScriptCmds\HydraConfig.h" />
     <ClInclude Include="ScriptCmds\ScopedProcessMutex.h" />
     <ClInclude Include="ScriptCmds\ScriptCommand.h" />
     <ClInclude Include="ScriptCmds\ScriptCommandDefines.h" />
diff --git a/src/c/CudaPy3DLL.vcxproj.filters b/src/c/CudaPy3DLL.vcxproj.filters
index c691ca69c64de7c2a397e6f2b093802952813f4c..f8a085fc5cf566da22a556b93c94788dece66b23 100644
--- a/src/c/CudaPy3DLL.vcxproj.filters
+++ b/src/c/CudaPy3DLL.vcxproj.filters
@@ -167,5 +167,8 @@
     <ClInclude Include="ScriptCmds\ScopedProcessMutex.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="ScriptCmds\HydraConfig.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
diff --git a/src/c/Mex/CudaMex.cpp b/src/c/Mex/CudaMex.cpp
index b331b7b82edf46fa86399fd301025a2085373d17..062a57ae953041a413263e1f4096d3ad7c70a644 100644
--- a/src/c/Mex/CudaMex.cpp
+++ b/src/c/Mex/CudaMex.cpp
@@ -5,7 +5,9 @@
   #define DLL_EXPORT_SYM __attribute__((visibility("default")))
 #endif
 
-#include "MexIncludes.h"
+#include "ScriptCmds/ScriptIncludes.h"
+
+HYDRA_CONFIG_MODULE();
 
 void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
 {
diff --git a/src/c/Mex/MexCommandModule.cpp b/src/c/Mex/MexCommandModule.cpp
index 5a1d31501e540da44ba721f006ae867d1edf7ca9..09bc45e580a736e19c43775687f8cd9657ad8ae9 100644
--- a/src/c/Mex/MexCommandModule.cpp
+++ b/src/c/Mex/MexCommandModule.cpp
@@ -1 +1,2 @@
+#include "ScriptCmds/HydraConfig.h"
 #include "ScriptCmds/ScriptCommandModule.h"
diff --git a/src/c/Python/PyCommandModule.cpp b/src/c/Python/PyCommandModule.cpp
index 7f94d61083944d389c97f3e4cbf9a0c1ed1faf81..09bc45e580a736e19c43775687f8cd9657ad8ae9 100644
--- a/src/c/Python/PyCommandModule.cpp
+++ b/src/c/Python/PyCommandModule.cpp
@@ -1,2 +1,2 @@
-
+#include "ScriptCmds/HydraConfig.h"
 #include "ScriptCmds/ScriptCommandModule.h"
diff --git a/src/c/Python/hip_module.cpp b/src/c/Python/hip_module.cpp
index eef11b2ba34c939cb86e0b92c99d90a742f294be..598e9396e2766555121c8144681db8faae592d46 100644
--- a/src/c/Python/hip_module.cpp
+++ b/src/c/Python/hip_module.cpp
@@ -4,6 +4,8 @@
 #define NUMPY_IMPORT_MODULE
 #include "ScriptCmds/ScriptIncludes.h"
 
+HYDRA_CONFIG_MODULE();
+
 // Make this a unique pointer just in case init can be run more than once
 static std::unique_ptr<PyMethodDef[]> hip_methods = nullptr;
 static std::unique_ptr<std::string[]> hip_docstrs = nullptr;
diff --git a/src/c/ScriptCmds/HydraConfig.h b/src/c/ScriptCmds/HydraConfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..1f1784ed522b4ddec44736de30eac3f580a90fe6
--- /dev/null
+++ b/src/c/ScriptCmds/HydraConfig.h
@@ -0,0 +1,65 @@
+#pragma once
+// HydraConfig - Provides a simple environment-variable based config loader to allow some
+//               configuration of the Hyrda library (e.g. enabling process-level mutex)
+
+#include <cstdlib>
+#include <cstring>
+#include <string>
+#include <algorithm>
+
+class HydraConfig
+{
+public:
+	static bool validConfig()
+	{
+		return m_staticInst;
+	}
+
+	static bool useProcessMutex()
+	{
+		if (!m_staticInst)
+			return false;
+
+		return m_staticInst->bUseProcessMutex;
+	}
+
+private:
+	HydraConfig()
+	{
+		defaultConfig(this);
+	}
+
+	static void defaultConfig(HydraConfig* pInst)
+	{
+		pInst->bUseProcessMutex = false;
+	}
+
+	// TODO: Use env-variable to find a config file instead of env-variables for direct configuration
+	static void loadConfig(HydraConfig* pInst)
+	{
+		char* envUPM = std::getenv("HYDRA_ENABLE_MUTEX");
+		if ( envUPM )
+		{
+			std::string envStr(envUPM);
+			std::transform(envStr.begin(), envStr.end(), envStr.begin(), ::toupper);
+
+			if ( envStr == "TRUE" || envStr == "1" )
+				pInst->bUseProcessMutex = true;
+		}
+	}
+
+	static HydraConfig* initConfig()
+	{
+		HydraConfig* pInst = new HydraConfig();
+
+		HydraConfig::loadConfig(pInst);
+		return pInst;
+	}
+
+private:
+	bool bUseProcessMutex;
+
+	static HydraConfig* m_staticInst;
+};
+
+#define HYDRA_CONFIG_MODULE() HydraConfig* HydraConfig::m_staticInst = HydraConfig::initConfig()
diff --git a/src/c/ScriptCmds/ScriptIncludes.h b/src/c/ScriptCmds/ScriptIncludes.h
index 724bcacc5ee73ad78d455732604ecf2cfb2e3c56..c4f9f6c8832c115808dbbcdcbcd7a781ddd76f26 100644
--- a/src/c/ScriptCmds/ScriptIncludes.h
+++ b/src/c/ScriptCmds/ScriptIncludes.h
@@ -11,5 +11,7 @@
 #undef max
 #undef min
 
+#include "ScriptCmds/HydraConfig.h"
+
 #include "ScriptCmds/ScriptHelpers.h"
 #include "ScriptCmds/ScriptCommand.h"