diff -ur -x .DS_Store ./Core/Unix/MacOSX/CoreMacOSX.cpp ./K/Core/Unix/MacOSX/CoreMacOSX.cpp
--- ./Core/Unix/MacOSX/CoreMacOSX.cpp	2014-09-16 10:05:01.000000000 +0200
+++ ./K/Core/Unix/MacOSX/CoreMacOSX.cpp	2014-09-16 09:51:00.000000000 +0200
@@ -109,6 +109,7 @@
 
 	void CoreMacOSX::MountAuxVolumeImage (const DirectoryPath &auxMountPoint, const MountOptions &options) const
 	{
+#if 0
 		// Check FUSE version
 		char fuseVersionString[MAXHOSTNAMELEN + 1] = { 0 };
 		size_t fuseVersionStringLength = MAXHOSTNAMELEN;
@@ -125,7 +126,7 @@
 
 		if (fuseVersionMajor < 1 || (fuseVersionMajor == 1 && fuseVersionMinor < 3))
 			throw HigherFuseVersionRequired (SRC_POS);
-
+#endif
 		// Mount volume image
 		string volImage = string (auxMountPoint) + FuseService::GetVolumeImagePath();
 
diff -ur -x .DS_Store ./Main/Application.cpp ./K/Main/Application.cpp
--- ./Main/Application.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Application.cpp	2014-09-09 12:43:32.000000000 +0200
@@ -37,7 +37,6 @@
 
 	FilePath Application::GetConfigFilePath (const wxString &configFileName, bool createConfigDir)
 	{
-		wxStandardPaths stdPaths;
 		DirectoryPath configDir;
 		
 		if (!Core->IsInPortableMode())
@@ -47,7 +46,7 @@
 			configPath.Normalize();
 			configDir = wstring (configPath.GetFullPath());
 #else
-			configDir = wstring (stdPaths.GetUserDataDir());
+			configDir = wstring (wxStandardPaths::Get().GetUserDataDir());
 #endif
 		}
 		else
@@ -62,12 +61,12 @@
 
 	DirectoryPath Application::GetExecutableDirectory ()
 	{
-		return wstring (wxFileName (wxStandardPaths().GetExecutablePath()).GetPath());
+		return wstring (wxFileName (wxStandardPaths::Get().GetExecutablePath()).GetPath());
 	}
 
 	FilePath Application::GetExecutablePath ()
 	{
-		return wstring (wxStandardPaths().GetExecutablePath());
+		return wstring (wxStandardPaths::Get().GetExecutablePath());
 	}
 
 	void Application::Initialize (UserInterfaceType::Enum type)
diff -ur -x .DS_Store ./Main/CommandLineInterface.cpp ./K/Main/CommandLineInterface.cpp
--- ./Main/CommandLineInterface.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/CommandLineInterface.cpp	2014-09-09 12:55:54.000000000 +0200
@@ -381,7 +381,7 @@
 		ArgQuick = parser.Found (L"quick");
 
 		if (parser.Found (L"random-source", &str))
-			ArgRandomSourcePath = FilesystemPath (str);
+			ArgRandomSourcePath = FilesystemPath (str.wc_str());
 
 		if (parser.Found (L"restore-headers"))
 		{
@@ -472,7 +472,7 @@
 
 			if (param1IsFile)
 			{
-				ArgFilePath.reset (new FilePath (parser.GetParam (0)));
+				ArgFilePath.reset (new FilePath (parser.GetParam (0).wc_str()));
 			}
 		}
 
@@ -525,7 +525,7 @@
 					arr.Add (L"");
 					continue;
 				}
-				arr.Last() += token.empty() ? L',' : token;
+				arr.Last() += token.empty() ? wxString(L',') : token;
 			}
 			else
 				arr.Add (token);
@@ -563,12 +563,12 @@
 			{
 				filteredVolumes.push_back (volume);
 			}
-			else if (wxString (volume->Path) == pathFilter.GetFullPath())
+			else if (wxString(wstring(volume->Path)) == pathFilter.GetFullPath())
 			{
 				filteredVolumes.push_back (volume);
 			}
-			else if (wxString (volume->MountPoint) == pathFilter.GetFullPath()
-				|| (wxString (volume->MountPoint) + wxFileName::GetPathSeparator()) == pathFilter.GetFullPath())
+			else if (wxString (wstring(volume->MountPoint)) == pathFilter.GetFullPath()
+				|| (wxString (wstring(volume->MountPoint)) + wxFileName::GetPathSeparator()) == pathFilter.GetFullPath())
 			{
 				filteredVolumes.push_back (volume);
 			}
diff -ur -x .DS_Store ./Main/FatalErrorHandler.cpp ./K/Main/FatalErrorHandler.cpp
--- ./Main/FatalErrorHandler.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/FatalErrorHandler.cpp	2014-09-09 11:55:50.000000000 +0200
@@ -21,11 +21,7 @@
 #endif
 
 #ifdef GST_MACOSX
-#	ifdef __ppc__
-#		include <ppc/ucontext.h>
-#	else
-#		include <i386/ucontext.h>
-#	endif
+#	include <ucontext.h>
 #elif defined (GST_BSD)
 #	include <ucontext.h>
 #endif
@@ -55,12 +51,10 @@
 #	endif
 
 #elif defined (GST_MACOSX)
-#	ifdef __ppc__
-		faultingInstructionAddress = context->uc_mcontext->ss.srr0;
-#	elif defined (__x86_64__)
-		faultingInstructionAddress = context->uc_mcontext->ss.rip;
+#	if defined (__x86_64__)
+		faultingInstructionAddress = context->uc_mcontext->__ss.__rip;
 #	else
-		faultingInstructionAddress = context->uc_mcontext->ss.eip;
+		faultingInstructionAddress = context->uc_mcontext->__ss.__eip;
 #	endif
 
 #endif
diff -ur -x .DS_Store ./Main/Forms/Forms.cpp ./K/Main/Forms/Forms.cpp
--- ./Main/Forms/Forms.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/Forms.cpp	2014-09-09 13:29:04.000000000 +0200
@@ -274,8 +274,6 @@
 	VolumeStaticBoxSizer = new wxStaticBoxSizer( new wxStaticBox( MainPanel, wxID_ANY, _("Volume") ), wxVERTICAL );
 	
 	VolumeGridBagSizer = new wxGridBagSizer( 0, 0 );
-	VolumeGridBagSizer->AddGrowableCol( 1 );
-	VolumeGridBagSizer->AddGrowableRow( 0 );
 	VolumeGridBagSizer->SetFlexibleDirection( wxBOTH );
 	VolumeGridBagSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 	
@@ -318,6 +316,9 @@
 	
 	VolumeGridBagSizer->Add( bSizer21, wxGBPosition( 1, 3 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
 	
+    VolumeGridBagSizer->AddGrowableCol(1);
+    VolumeGridBagSizer->AddGrowableRow ( 0 );
+
 	VolumeStaticBoxSizer->Add( VolumeGridBagSizer, 1, wxEXPAND|wxALL, 4 );
 	
 	LowStaticBoxSizer->Add( VolumeStaticBoxSizer, 1, wxEXPAND, 5 );
@@ -1453,7 +1454,6 @@
 	bSizer54->Add( bSizer55, 1, wxEXPAND, 5 );
 	
 	FilesystemOptionsSizer = new wxGridBagSizer( 0, 0 );
-	FilesystemOptionsSizer->AddGrowableCol( 1 );
 	FilesystemOptionsSizer->SetFlexibleDirection( wxBOTH );
 	FilesystemOptionsSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 	FilesystemOptionsSizer->SetEmptyCellSize( wxSize( 0,0 ) );
@@ -1479,6 +1479,8 @@
 	FilesystemOptionsTextCtrl = new wxTextCtrl( m_panel8, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 	FilesystemOptionsSizer->Add( FilesystemOptionsTextCtrl, wxGBPosition( 2, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
 	
+    FilesystemOptionsSizer->AddGrowableCol(1);
+
 	bSizer54->Add( FilesystemOptionsSizer, 0, wxEXPAND, 5 );
 	
 	sbSizer28->Add( bSizer54, 0, wxEXPAND|wxBOTTOM, 5 );
@@ -2852,7 +2854,6 @@
 	bSizer7 = new wxBoxSizer( wxVERTICAL );
 	
 	GridBagSizer = new wxGridBagSizer( 0, 0 );
-	GridBagSizer->AddGrowableCol( 1 );
 	GridBagSizer->SetFlexibleDirection( wxBOTH );
 	GridBagSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 	GridBagSizer->SetEmptyCellSize( wxSize( 0,0 ) );
@@ -2910,6 +2911,8 @@
 	
 	GridBagSizer->Add( PasswordPlaceholderSizer, wxGBPosition( 8, 1 ), wxGBSpan( 1, 2 ), wxTOP|wxEXPAND, 5 );
 	
+    GridBagSizer->AddGrowableCol(1);
+
 	bSizer7->Add( GridBagSizer, 1, wxALL|wxEXPAND, 5 );
 	
 	this->SetSizer( bSizer7 );
diff -ur -x .DS_Store ./Main/Forms/MainFrame.cpp ./K/Main/Forms/MainFrame.cpp
--- ./Main/Forms/MainFrame.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/MainFrame.cpp	2014-09-09 13:10:46.000000000 +0200
@@ -829,7 +829,7 @@
 			// File-hosted volumes
 			if (!volume->Path.IsDevice() && !mountPoint.IsEmpty())
 			{
-				if (wxString (volume->Path).Upper().StartsWith (wstring (mountPoint).c_str()))
+				if (wxString (wstring(volume->Path)).Upper().StartsWith (wxString (wstring(mountPoint))))
 				{
 					removedVolumes.push_back (volume);
 					continue;
@@ -1021,7 +1021,7 @@
 		if (!ListItemRightClickEventPending)
 		{
 			ListItemRightClickEventPending = true;
-			SlotListCtrl->AddPendingEvent (event);
+			SlotListCtrl->GetEventHandler()->AddPendingEvent (event);
 			return;
 		}
 
diff -ur -x .DS_Store ./Main/Forms/PreferencesDialog.cpp ./K/Main/Forms/PreferencesDialog.cpp
--- ./Main/Forms/PreferencesDialog.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/PreferencesDialog.cpp	2014-09-09 09:47:36.000000000 +0200
@@ -113,10 +113,11 @@
 		CloseExplorerWindowsOnDismountCheckBox->Show (false);
 #endif
 
+        /*
 #ifndef GST_LINUX
 		KernelServicesSizer->Show (false);
 #endif
-
+*/
 #ifdef GST_WINDOWS
 		// Hotkeys
 		list <int> colPermilles;
diff -ur -x .DS_Store ./Main/Forms/SelectDirectoryWizardPage.cpp ./K/Main/Forms/SelectDirectoryWizardPage.cpp
--- ./Main/Forms/SelectDirectoryWizardPage.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/SelectDirectoryWizardPage.cpp	2014-09-09 13:12:58.000000000 +0200
@@ -17,7 +17,7 @@
 	{
 		if (!DirectoryTextCtrl->IsEmpty())
 		{
-			return FilesystemPath (DirectoryTextCtrl->GetValue()).IsDirectory();
+			return FilesystemPath (wstring(DirectoryTextCtrl->GetValue())).IsDirectory();
 		}
 
 		return false;
diff -ur -x .DS_Store ./Main/Forms/SelectDirectoryWizardPage.h ./K/Main/Forms/SelectDirectoryWizardPage.h
--- ./Main/Forms/SelectDirectoryWizardPage.h	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/SelectDirectoryWizardPage.h	2014-09-09 13:14:14.000000000 +0200
@@ -19,7 +19,7 @@
 	public:
 		SelectDirectoryWizardPage (wxPanel* parent) : SelectDirectoryWizardPageBase (parent) { }
 
-		DirectoryPath GetDirectory () const { return DirectoryPath (DirectoryTextCtrl->GetValue()); }
+		DirectoryPath GetDirectory () const { return DirectoryPath (wstring(DirectoryTextCtrl->GetValue())); }
 		bool IsValid ();
 		void SetDirectory (const DirectoryPath &path) { DirectoryTextCtrl->SetValue (wstring (path)); }
 		void SetMaxStaticTextWidth (int width) { InfoStaticText->Wrap (width); }
diff -ur -x .DS_Store ./Main/Forms/VolumeCreationWizard.cpp ./K/Main/Forms/VolumeCreationWizard.cpp
--- ./Main/Forms/VolumeCreationWizard.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Forms/VolumeCreationWizard.cpp	2014-09-09 10:06:40.000000000 +0200
@@ -578,7 +578,7 @@
 							{
 								foreach_ref (const HostDevice &partition, drive.Partitions)
 								{
-									if (partition.MountPoint == "/")
+									if (string(partition.MountPoint) == "/")
 									{
 										Gui->ShowError (_("Error: You are trying to encrypt a system drive.\n\nGostCrypt can encrypt a system drive only under Windows."));
 										return GetCurrentStep();
@@ -613,7 +613,7 @@
 							
 							if (!mountPoint.IsEmpty())
 							{
-								if (mountPoint == "/")
+								if (string(mountPoint) == "/")
 								{
 									Gui->ShowError (_("Error: You are trying to encrypt a system partition.\n\nGostCrypt can encrypt system partitions only under Windows."));
 									return GetCurrentStep();
diff -ur -x .DS_Store ./Main/GraphicUserInterface.cpp ./K/Main/GraphicUserInterface.cpp
--- ./Main/GraphicUserInterface.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/GraphicUserInterface.cpp	2014-09-09 13:27:32.000000000 +0200
@@ -1379,13 +1379,13 @@
 
 	DirectoryPath GraphicUserInterface::SelectDirectory (wxWindow *parent, const wxString &message, bool existingOnly) const
 	{
-		return DirectoryPath (::wxDirSelector (!message.empty() ? message :
+		return DirectoryPath (wstring(::wxDirSelector (!message.empty() ? message :
 #ifdef __WXGTK__
 			wxDirSelectorPromptStr,
 #else
 			L"",
 #endif
-			L"", wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent));
+			L"", wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str()));
 	}
 
 	FilePathList GraphicUserInterface::SelectFiles (wxWindow *parent, const wxString &caption, bool saveMode, bool allowMultiple, const list < pair <wstring, wstring> > &fileExtensions, const DirectoryPath &directory) const
@@ -1429,14 +1429,14 @@
 		if (dialog.ShowModal() == wxID_OK)
 		{
 			if (!allowMultiple)
-				files.push_back (make_shared <FilePath> (dialog.GetPath()));
+				files.push_back (make_shared <FilePath> (dialog.GetPath().wc_str()));
 			else
 			{
 				wxArrayString paths;
 				dialog.GetPaths (paths);
 
 				foreach (const wxString &path, paths)
-					files.push_back (make_shared <FilePath> (path));
+					files.push_back (make_shared <FilePath> (path.wc_str()));
 			}
 		}
 
diff -ur -x .DS_Store ./Main/Main.make ./K/Main/Main.make
--- ./Main/Main.make	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/Main.make	2014-09-10 13:31:21.000000000 +0200
@@ -84,7 +84,7 @@
 
 ifeq "$(GST_BUILD_CONFIG)" "Release"
 
-CXXFLAGS += $(shell $(WX_CONFIG) $(WX_CONFIG_ARGS) --cxxflags)
+CXXFLAGS += $(shell $(WX_CONFIG) $(WX_CONFIG_ARGS) --cxxflags $(WX_CONFIG_LIBS))
 WX_LIBS = $(shell $(WX_CONFIG) $(WX_CONFIG_ARGS) --libs $(WX_CONFIG_LIBS))
 
 else
diff -ur -x .DS_Store ./Main/TextUserInterface.cpp ./K/Main/TextUserInterface.cpp
--- ./Main/TextUserInterface.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/TextUserInterface.cpp	2014-09-09 13:21:16.000000000 +0200
@@ -117,7 +117,7 @@
 			for (size_t i = 0; i < length && i < VolumePassword::MaxSize; ++i)
 			{
 				passwordBuf[i] = (wchar_t) passwordStr[i];
-				const_cast <wchar_t *> (passwordStr.c_str())[i] = L'X';
+				const_cast <wchar_t*> (passwordStr.wc_str())[i] = L'X';
 			}
 
 			if (verify && verPhase)
@@ -764,8 +764,8 @@
 
 				ShowString (wxString::Format (L"\rDone: %7.3f%%  Speed: %9s  Left: %s         ",
 					100.0 - double (options->Size - progress.SizeDone) / (double (options->Size) / 100.0),
-					speed > 0 ? SpeedToString (speed).c_str() : L" ",
-					speed > 0 ? TimeSpanToString ((options->Size - progress.SizeDone) / speed).c_str() : L""));
+					speed > 0 ? SpeedToString (speed).wc_str() : L" ",
+					speed > 0 ? TimeSpanToString ((options->Size - progress.SizeDone) / speed).wc_str() : L""));
 			}
 
 			Thread::Sleep (100);
diff -ur -x .DS_Store ./Main/UserPreferences.cpp ./K/Main/UserPreferences.cpp
--- ./Main/UserPreferences.cpp	2014-07-16 00:19:22.000000000 +0200
+++ ./K/Main/UserPreferences.cpp	2014-09-09 13:21:52.000000000 +0200
@@ -220,7 +220,7 @@
 
 			foreach_ref (const Keyfile &keyfile, DefaultKeyfiles)
 			{
-				keyfilesXml.InnerNodes.push_back (XmlNode (L"keyfile", wxString (FilesystemPath (keyfile))));
+				keyfilesXml.InnerNodes.push_back (XmlNode (L"keyfile", wxString (wstring(FilesystemPath (keyfile)))));
 			}
 
 			XmlWriter keyfileWriter (keyfilesCfgPath);
diff -ur -x .DS_Store ./Makefile ./K/Makefile
--- ./Makefile	2014-06-23 15:19:38.000000000 +0200
+++ ./K/Makefile	2014-09-10 14:50:42.000000000 +0200
@@ -38,9 +38,9 @@
 export WX_CONFIG ?= wx-config
 export WX_CONFIG_ARGS := --unicode
 WX_CONFIGURE_FLAGS :=
-export WXCONFIG_CFLAGS :=
-export WXCONFIG_CXXFLAGS :=
-WX_ROOT ?= ..
+export WXCONFIG_CFLAGS := `wx-config --cflags`
+export WXCONFIG_CXXFLAGS := `wx-config --cxxflags`
+WX_ROOT ?= ../wxWidgets-3.0.1
 
 
 export GST_BUILD_CONFIG := Release
@@ -110,7 +110,7 @@
 export PLATFORM := "Unknown"
 export PLATFORM_UNSUPPORTED := 0
 
-export CPU_ARCH ?= unknown
+export CPU_ARCH ?= x64
 
 ARCH = $(shell uname -p)
 ifeq "$(ARCH)" "unknown"
@@ -165,13 +165,13 @@
 	PLATFORM := MacOSX
 	APPNAME := GostCrypt
 
-	GST_OSX_SDK ?= /Developer/SDKs/MacOSX10.4u.sdk
-	CC := gcc-4.0
-	CXX := g++-4.0
-
-	C_CXX_FLAGS += -DGST_UNIX -DGST_BSD -DGST_MACOSX -mmacosx-version-min=10.4 -isysroot $(GST_OSX_SDK)
-	LFLAGS += -mmacosx-version-min=10.4 -Wl,-syslibroot $(GST_OSX_SDK)
-	WX_CONFIGURE_FLAGS += --with-macosx-version-min=10.4 --with-macosx-sdk=$(GST_OSX_SDK)
+	GST_OSX_SDK ?= /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
+	CC := gcc
+	CXX := g++
+
+	C_CXX_FLAGS += -DGST_UNIX -DGST_BSD -DGST_MACOSX -mmacosx-version-min=10.9 -isysroot $(GST_OSX_SDK) -D_XOPEN_SOURCE
+	LFLAGS += -mmacosx-version-min=10.9 -Wl,-syslibroot $(GST_OSX_SDK)
+	WX_CONFIGURE_FLAGS += --with-macosx-version-min=10.9 --with-macosx-sdk=$(GST_OSX_SDK)
 
 	ifeq "$(CPU_ARCH)" "x64"
 		CPU_ARCH = x86
@@ -187,10 +187,10 @@
 		S := $(C_CXX_FLAGS)
 		C_CXX_FLAGS = $(subst -MMD,,$(S))
 
-		C_CXX_FLAGS += -gfull -arch i386 -arch ppc
-		LFLAGS += -Wl,-dead_strip -arch i386 -arch ppc
+		C_CXX_FLAGS += -gfull 
+		LFLAGS += -Wl,-dead_strip 
 
-		WX_CONFIGURE_FLAGS += --enable-universal_binary
+#		WX_CONFIGURE_FLAGS += --enable-universal_binary
 		WXCONFIG_CFLAGS += -gfull
 		WXCONFIG_CXXFLAGS += -gfull
 
diff -ur -x .DS_Store ./Platform/FilesystemPath.h ./K/Platform/FilesystemPath.h
--- ./Platform/FilesystemPath.h	2014-07-16 00:19:23.000000000 +0200
+++ ./K/Platform/FilesystemPath.h	2014-09-09 11:10:12.000000000 +0200
@@ -34,9 +34,9 @@
 	{
 	public:
 		FilesystemPath () { }
-		FilesystemPath (const char *path) : Path (StringConverter::ToWide (path)) { }
+	//	FilesystemPath (const char *path) : Path (StringConverter::ToWide (path)) { }
 		FilesystemPath (string path) : Path (StringConverter::ToWide (path)) { }
-		FilesystemPath (const wchar_t *path) : Path (path) { }
+    	FilesystemPath (const wchar_t *path) : Path (path) { }
 		FilesystemPath (wstring path) : Path (path) { }
 		virtual ~FilesystemPath () { }
 
diff -ur -x .DS_Store ./Platform/Unix/Process.cpp ./K/Platform/Unix/Process.cpp
--- ./Platform/Unix/Process.cpp	2014-07-16 00:19:23.000000000 +0200
+++ ./K/Platform/Unix/Process.cpp	2014-09-09 13:26:08.000000000 +0200
@@ -53,9 +53,9 @@
 					if (!execFunctor)
 						args[argIndex++] = const_cast <char*> (processName.c_str());
 
-					foreach (const string &arg, arguments)
+                    for(list<string>::const_iterator arg=arguments.begin(); arg != arguments.end(); ++arg)
 					{
-						args[argIndex++] = const_cast <char*> (arg.c_str());
+						args[argIndex++] = const_cast <char*> ((*arg).c_str());
 					}
 					args[argIndex] = nullptr;
 
Only in .: gostcrypt.patch
