diff --git a/aegisub/charset_detect.cpp b/aegisub/charset_detect.cpp
index f59d8f26afa5dacff7dffa0c2e95d210903db04a..f45e91fb2377dd8e7028c5e7b848fa2f2f823b41 100644
--- a/aegisub/charset_detect.cpp
+++ b/aegisub/charset_detect.cpp
@@ -69,15 +69,17 @@ wxString CharSetDetect::GetEncoding(wxString filename) {
 	// Grab every result obtained
 	std::list<CharDetResult> results;
 	for (int i=0;i<NUM_OF_CHARSET_PROBERS;i++) {
-		int probes = mCharSetProbers[i]->GetProbeCount();
-		for (int j=0;j<probes;j++) {
-			float conf = mCharSetProbers[i]->GetConfidence(j);
-
-			// Only bother with those whose confidence is at least 1%
-			if (conf > 0.01f) {
-				results.push_back(CharDetResult());
-				results.back().name = wxString(mCharSetProbers[i]->GetCharSetName(j),wxConvUTF8);
-				results.back().confidence = mCharSetProbers[i]->GetConfidence(j);
+		if (mCharSetProbers[i]) {
+			int probes = mCharSetProbers[i]->GetProbeCount();
+			for (int j=0;j<probes;j++) {
+				float conf = mCharSetProbers[i]->GetConfidence(j);
+
+				// Only bother with those whose confidence is at least 1%
+				if (conf > 0.01f) {
+					results.push_back(CharDetResult());
+					results.back().name = wxString(mCharSetProbers[i]->GetCharSetName(j),wxConvUTF8);
+					results.back().confidence = mCharSetProbers[i]->GetConfidence(j);
+				}
 			}
 		}
 	}