diff -ru blokish.orig/src/blokish.cpp blokish/src/blokish.cpp
--- blokish.orig/src/blokish.cpp	2007-04-01 17:01:26.000000000 -0400
+++ blokish/src/blokish.cpp	2015-11-15 21:48:32.426081482 -0500
@@ -903,7 +903,7 @@
   void OnSaveGame(wxCommandEvent &event)
   {
 		WaitForAIToFinish();
-    wxString filename = wxFileSelector(wxString::FromAscii("Select a filename to save as"), wxString::FromAscii(""), wxString::FromAscii("default.sav"), wxString::FromAscii(".sav"), wxString::FromAscii("*.sav"), wxSAVE);
+    wxString filename = wxFileSelector(wxString::FromAscii("Select a filename to save as"), wxString::FromAscii(""), wxString::FromAscii("default.sav"), wxString::FromAscii(".sav"), wxString::FromAscii("*.sav"), wxFD_SAVE);
     if(!filename.empty())
     {
       std::ofstream outFile(filename.fn_str(), std::ios::binary);
@@ -915,7 +915,7 @@
   void OnLoadGame(wxCommandEvent &event)
   {
 		WaitForAIToFinish();
-    wxString filename = wxFileSelector(wxString::FromAscii("Select a game to load"), wxString::FromAscii(""), wxString::FromAscii(""), wxString::FromAscii(".sav"), wxString::FromAscii("*.sav"), wxOPEN | wxFILE_MUST_EXIST);
+    wxString filename = wxFileSelector(wxString::FromAscii("Select a game to load"), wxString::FromAscii(""), wxString::FromAscii(""), wxString::FromAscii(".sav"), wxString::FromAscii("*.sav"), wxFD_OPEN | wxFD_FILE_MUST_EXIST);
     if(!filename.empty())
     {
       std::ifstream inFile(filename.fn_str(), std::ios::binary);
