diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 00000000..c36befbc
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "commandline"]
+ path = commandline
+ url = https://github.com/gsscoder/commandline/
+ branch = stable-1.9.71.2
diff --git a/DiscImageChef.sln b/DiscImageChef.sln
index 5df9d2d2..6afc1388 100644
--- a/DiscImageChef.sln
+++ b/DiscImageChef.sln
@@ -5,12 +5,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscImageChef", "DiscImageC
EndProject
Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "Packages", "Packages.mdproj", "{8996EF59-09B9-4920-A3DE-2F8EA2EBBCFF}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommandLine35", "commandline\src\libcmdline\CommandLine35.csproj", "{5DEA2811-2FFA-4959-830B-CAD3ACACABEB}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5DEA2811-2FFA-4959-830B-CAD3ACACABEB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5DEA2811-2FFA-4959-830B-CAD3ACACABEB}.Debug|x86.Build.0 = Debug|Any CPU
+ {5DEA2811-2FFA-4959-830B-CAD3ACACABEB}.Release|x86.ActiveCfg = Release|Any CPU
+ {5DEA2811-2FFA-4959-830B-CAD3ACACABEB}.Release|x86.Build.0 = Release|Any CPU
{7A4B05BE-73C9-4F34-87FE-E80CCF1F732D}.Debug|x86.ActiveCfg = Debug|x86
{7A4B05BE-73C9-4F34-87FE-E80CCF1F732D}.Debug|x86.Build.0 = Debug|x86
{7A4B05BE-73C9-4F34-87FE-E80CCF1F732D}.Release|x86.ActiveCfg = Release|x86
diff --git a/DiscImageChef/DiscImageChef.csproj b/DiscImageChef/DiscImageChef.csproj
index eb964b6b..efc602f3 100644
--- a/DiscImageChef/DiscImageChef.csproj
+++ b/DiscImageChef/DiscImageChef.csproj
@@ -160,4 +160,10 @@
+
+
+ {5DEA2811-2FFA-4959-830B-CAD3ACACABEB}
+ CommandLine35
+
+
\ No newline at end of file
diff --git a/commandline b/commandline
new file mode 160000
index 00000000..205094c0
--- /dev/null
+++ b/commandline
@@ -0,0 +1 @@
+Subproject commit 205094c0c135ab5b6816f3eb0e6a84ddced5b0e2