diff --git a/pcsx2/Patch.cpp b/pcsx2/Patch.cpp
index 269cf17f1d..fbf3519cb3 100644
--- a/pcsx2/Patch.cpp
+++ b/pcsx2/Patch.cpp
@@ -203,7 +203,8 @@ static int LoadCheatsFiles(const wxDirName& folderName, wxString& fileSpec, cons
 			inifile_process(f);
 			f.Close();
 			int loaded = cheatnumber - before;
-			Console.WriteLn((loaded ? Color_Green : Color_Gray), L"Loaded %d %s from '%s'", loaded, WX_STR(friendlyName), WX_STR(buffer));
+			Console.WriteLn((loaded ? Color_Green : Color_Gray), L"Loaded %d %s from '%s' at '%s'",
+							loaded, WX_STR(friendlyName), WX_STR(buffer), WX_STR(folderName.ToString()));
 			numberFoundCheatsFiles ++;
 		}
 		found = dir.GetNext(&buffer);
@@ -253,6 +254,9 @@ int LoadCheats(wxString name, const wxDirName& folderName, const wxString& frien
 	wxString filespec = name + L"*.pnach";
 	loaded += LoadCheatsFiles(folderName, filespec, friendlyName, numberFoundCheatsFiles);
 
+	// This message _might_ be buggy. This function (LoadCheats) loads from an explicit folder.
+	// This folder can be cheats or cheats_ws at either the default location or a custom one.
+	// This check only tests the default cheats folder, so the message it produces is possibly misleading.
 	if (folderName.ToString().IsSameAs(PathDefs::GetCheats().ToString()) && numberFoundCheatsFiles == 0) {
 		wxString pathName = Path::Combine(folderName, name.MakeUpper() + L".pnach");
 		Console.WriteLn(Color_Gray, L"Not found %s file: %s", WX_STR(friendlyName), WX_STR(pathName));
diff --git a/pcsx2/gui/AppConfig.cpp b/pcsx2/gui/AppConfig.cpp
index 623e58cfec..45c7bb339b 100644
--- a/pcsx2/gui/AppConfig.cpp
+++ b/pcsx2/gui/AppConfig.cpp
@@ -453,9 +453,24 @@ bool AppConfig::FullpathMatchTest( PluginsEnum_t pluginId, const wxString& cmpto
 	return wxFileName(cmpto).SameAs( FullpathTo(pluginId) );
 }
 
+static wxDirName GetResolvedFolder(FoldersEnum_t id)
+{
+	return g_Conf->Folders.IsDefault(id) ? PathDefs::Get(id) : g_Conf->Folders[id];
+}
+
 wxDirName GetLogFolder()
 {
-	return g_Conf->Folders.IsDefault( FolderId_Logs ) ? PathDefs::Get(FolderId_Logs) : g_Conf->Folders[FolderId_Logs];
+	return GetResolvedFolder(FolderId_Logs);
+}
+
+wxDirName GetCheatsFolder()
+{
+	return GetResolvedFolder(FolderId_Cheats);
+}
+
+wxDirName GetCheatsWsFolder()
+{
+	return GetResolvedFolder(FolderId_CheatsWS);
 }
 
 wxDirName GetSettingsFolder()
diff --git a/pcsx2/gui/AppConfig.h b/pcsx2/gui/AppConfig.h
index f8cf47900f..b70356c40a 100644
--- a/pcsx2/gui/AppConfig.h
+++ b/pcsx2/gui/AppConfig.h
@@ -67,6 +67,8 @@ extern wxString  GetUiSettingsFilename();
 extern wxString  GetUiKeysFilename();
 
 extern wxDirName GetLogFolder();
+extern wxDirName GetCheatsFolder();
+extern wxDirName GetCheatsWsFolder();
 
 enum InstallationModeType
 {
diff --git a/pcsx2/gui/AppCoreThread.cpp b/pcsx2/gui/AppCoreThread.cpp
index 4a1a8211ca..4243a3bf45 100644
--- a/pcsx2/gui/AppCoreThread.cpp
+++ b/pcsx2/gui/AppCoreThread.cpp
@@ -382,14 +382,14 @@ void AppCoreThread::ApplySettings( const Pcsx2Config& src )
 
 	// regular cheat patches
 	if (EmuConfig.EnableCheats) {
-		if (numberLoadedCheats = LoadCheats(gameCRC, PathDefs::GetCheats(), L"Cheats")) {
+		if (numberLoadedCheats = LoadCheats(gameCRC, GetCheatsFolder(), L"Cheats")) {
 			gameCheats.Printf(L" [%d Cheats]", numberLoadedCheats);
 		}
 	}
 
 	// wide screen patches
 	if (EmuConfig.EnableWideScreenPatches) {
-		if (numberLoadedWideScreenPatches = LoadCheats(gameCRC, PathDefs::GetCheatsWS(), L"Widescreen hacks")) {
+		if (numberLoadedWideScreenPatches = LoadCheats(gameCRC, GetCheatsWsFolder(), L"Widescreen hacks")) {
 			gameWsHacks.Printf(L" [%d widescreen hacks]", numberLoadedWideScreenPatches);
 		}
 		else {