diff --git a/win32/README.VISUAL_STUDIO b/win32/README.VISUAL_STUDIO
new file mode 100644
index 00000000..e32e146f
--- /dev/null
+++ b/win32/README.VISUAL_STUDIO
@@ -0,0 +1,26 @@
+README.VISUAL_STUDIO
+====================
+
+As we get fwknop working for different versions of Visual Studio (VS),
+we may start making version-specific copies of the Solution (.sln) and
+Project (.vcproj) files. Though most later versions of VS can convert
+these files from previous versions, the older versions cannot use those
+created in the newer versions.
+
+The solution and project files are:
+
+ - libfko.sln
+ - libfko.vcproj
+ - fwknop-client.vcproj
+
+Version-specific copies will have the same names, but with a prefix
+of ".vs2XXX" (i.e. for VS2008: libfko.sln.vs2008, etc.).
+
+If this directory contains a solution and project files that match
+your version of VS, then you should copy them over the original versions
+to use them.
+
+If you have a version of VS that is not covered by any of the existing
+files, you should be able to get it to read one of the older files and
+convert it. If you do this, please consider contributing these back to
+the fwknop project.
diff --git a/win32/fwknop-client.vcproj.vs2008 b/win32/fwknop-client.vcproj.vs2008
new file mode 100644
index 00000000..53a6a5e5
--- /dev/null
+++ b/win32/fwknop-client.vcproj.vs2008
@@ -0,0 +1,543 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win32/libfko.sln.vs2008 b/win32/libfko.sln.vs2008
new file mode 100644
index 00000000..15b78bfc
--- /dev/null
+++ b/win32/libfko.sln.vs2008
@@ -0,0 +1,44 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfko", "libfko.vcproj", "{133BC195-4877-481D-9F56-9F1BEBAD21F0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fwknop-client", "fwknop-client.vcproj", "{D8AFA02D-14BF-42F4-97DE-EF4924D046D6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0} = {133BC195-4877-481D-9F56-9F1BEBAD21F0}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug-static|Win32 = Debug-static|Win32
+ Release|Win32 = Release|Win32
+ Release-full-static|Win32 = Release-full-static|Win32
+ Release-static|Win32 = Release-static|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Debug|Win32.Build.0 = Debug|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Debug-static|Win32.ActiveCfg = Debug-static|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Debug-static|Win32.Build.0 = Debug-static|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release|Win32.ActiveCfg = Release|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release|Win32.Build.0 = Release|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release-full-static|Win32.ActiveCfg = Release-full-static|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release-full-static|Win32.Build.0 = Release-full-static|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release-static|Win32.ActiveCfg = Release-static|Win32
+ {133BC195-4877-481D-9F56-9F1BEBAD21F0}.Release-static|Win32.Build.0 = Release-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Debug|Win32.Build.0 = Debug|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Debug-static|Win32.ActiveCfg = Debug-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Debug-static|Win32.Build.0 = Debug-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release|Win32.ActiveCfg = Release|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release|Win32.Build.0 = Release|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release-full-static|Win32.ActiveCfg = Release-full-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release-full-static|Win32.Build.0 = Release-full-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release-static|Win32.ActiveCfg = Release-static|Win32
+ {D8AFA02D-14BF-42F4-97DE-EF4924D046D6}.Release-static|Win32.Build.0 = Release-static|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/win32/libfko.vcproj.vs2008 b/win32/libfko.vcproj.vs2008
new file mode 100644
index 00000000..3ba753ab
--- /dev/null
+++ b/win32/libfko.vcproj.vs2008
@@ -0,0 +1,558 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+