diff --git a/aegisub/src/aegisublocale.cpp b/aegisub/src/aegisublocale.cpp
index a04ba107864cae553249c4a871f4b89041422e13..0e826ad120412d465280ce9e782e7e4436541d78 100644
--- a/aegisub/src/aegisublocale.cpp
+++ b/aegisub/src/aegisublocale.cpp
@@ -37,6 +37,8 @@
 #include "config.h"
 
 #ifndef AGI_PRE
+#include <algorithm>
+#include <functional>
 #include <locale.h>
 
 #include <wx/dir.h>
@@ -120,6 +122,9 @@ int AegisubLocale::PickLanguage() {
 		langs.Insert(user, 0);
 	}
 
+	// Remove languages which won't work due to the locale not being  installed
+	langs.erase(remove_if(langs.begin(), langs.end(), not1(std::ptr_fun(&wxLocale::IsAvailable))), langs.end());
+
 	// Nothing to pick
 	if (langs.empty()) return -1;