diff --git a/src/host/slbt_host_flavor.c b/src/host/slbt_host_flavor.c
index 1df5413..b5f6f45 100644
--- a/src/host/slbt_host_flavor.c
+++ b/src/host/slbt_host_flavor.c
@@ -52,6 +52,12 @@ SLBT_FLAVOR_SETTINGS(host_flavor_cygwin,        \
 	"",".exe","lib",".dll.a",               \
 	"PATH");
 
+SLBT_FLAVOR_SETTINGS(host_flavor_msys,          \
+	"pe",0,                                 \
+	"lib",".a","lib",".dll","",".dll",      \
+	"",".exe","lib",".dll.a",               \
+	"PATH");
+
 SLBT_FLAVOR_SETTINGS(host_flavor_darwin,        \
 	"macho","-fPIC",                        \
 	"lib",".a","lib",".dylib","",".dylib",  \
@@ -123,6 +129,8 @@ slbt_hidden void slbt_init_flavor_settings(
 		settings = &host_flavor_mingw;
 	else if (!strcmp(host->flavor,"cygwin"))
 		settings = &host_flavor_cygwin;
+	else if (!strcmp(host->flavor,"msys"))
+		settings = &host_flavor_msys;
 	else if (!strcmp(host->flavor,"darwin"))
 		settings = &host_flavor_darwin;
 	else
@@ -154,6 +162,8 @@ int slbt_host_flavor_settings(
 		*settings = &host_flavor_mingw;
 	else if (!strcmp(flavor,"cygwin"))
 		*settings = &host_flavor_cygwin;
+	else if (!strcmp(flavor,"msys"))
+		*settings = &host_flavor_msys;
 	else if (!strcmp(flavor,"darwin"))
 		*settings = &host_flavor_darwin;
 	else if (!strcmp(flavor,"default"))
diff --git a/src/host/slbt_host_params.c b/src/host/slbt_host_params.c
index 2fa7f11..e140885 100644
--- a/src/host/slbt_host_params.c
+++ b/src/host/slbt_host_params.c
@@ -214,6 +214,8 @@ slbt_hidden int slbt_init_host_params(
 			host->flavor = "bsd";
 		else if ((dash && !strcmp(dash,"-cygwin")) || strstr(machine,"-cygwin-"))
 			host->flavor = "cygwin";
+		else if ((dash && !strcmp(dash,"-msys")) || strstr(machine,"-msys-"))
+			host->flavor = "msys";
 		else if ((dash && !strcmp(dash,"-darwin")) || strstr(machine,"-darwin"))
 			host->flavor = "darwin";
 		else if ((dash && !strcmp(dash,"-linux")) || strstr(machine,"-linux-"))
@@ -361,6 +363,7 @@ slbt_hidden int slbt_init_host_params(
 		cfgmeta->windres = cfgexplicit;
 
 	else if (strcmp(host->flavor,"cygwin")
+			&& strcmp(host->flavor,"msys")
 			&& strcmp(host->flavor,"midipix")
 			&& strcmp(host->flavor,"mingw")) {
 		host->windres    = "";
@@ -386,6 +389,7 @@ slbt_hidden int slbt_init_host_params(
 		cfgmeta->dlltool = cfgmeta_dlltool ? cfgmeta_dlltool : cfgexplicit;
 
 	else if (strcmp(host->flavor,"cygwin")
+			&& strcmp(host->flavor,"msys")
 			&& strcmp(host->flavor,"midipix")
 			&& strcmp(host->flavor,"mingw")) {
 		host->dlltool = "";
@@ -411,6 +415,7 @@ slbt_hidden int slbt_init_host_params(
 		cfgmeta->mdso = cfgexplicit;
 
 	else if (strcmp(host->flavor,"cygwin")
+			&& strcmp(host->flavor,"msys")
 			&& strcmp(host->flavor,"midipix")
 			&& strcmp(host->flavor,"mingw")) {
 		host->mdso = "";