diff --git a/src/ThreadTasks.cpp b/src/ThreadTasks.cpp
index 78f83d0..bd3764a 100644
--- a/src/ThreadTasks.cpp
+++ b/src/ThreadTasks.cpp
@@ -148,6 +148,18 @@ void CHashingTask::Entry()
 	}
 
 	if ((m_toHash & EH_MD4) && !TestDestroy()) {
+		// Mr Hyde BEGIN
+		if (knownfile->m_hashlist.empty()) {
+			AddDebugLogLineM(true, logHasher,
+					wxT("Error while hashing file, skipping: ") +
+					m_filename +
+					wxT(" (known file ") +
+					knownfile->GetFileName() +
+					wxT(" has empty hash list)"));
+			return;
+		}	
+		// Mr Hyde END
+
 		// If the file is < PARTSIZE, then the filehash is that one hash,
 		// otherwise, the filehash is the hash of the parthashes
 		if ( knownfile->m_hashlist.size() == 1 ) {
