diff --git a/src/messaging/IMAPFolder.cpp b/src/messaging/IMAPFolder.cpp
index 0cbb860a..8d1b9a8e 100644
--- a/src/messaging/IMAPFolder.cpp
+++ b/src/messaging/IMAPFolder.cpp
@@ -662,7 +662,11 @@ void IMAPFolder::registerMessage(IMAPMessage* msg)
 
 void IMAPFolder::unregisterMessage(IMAPMessage* msg)
 {
-	std::remove(m_messages.begin(), m_messages.end(), msg);
+	std::vector <IMAPMessage*>::iterator it =
+		std::find(m_messages.begin(), m_messages.end(), msg);
+
+	if (it != m_messages.end())
+		m_messages.erase(it);
 }
 
 
diff --git a/src/messaging/maildirFolder.cpp b/src/messaging/maildirFolder.cpp
index 7ce56623..4bf1fcfb 100644
--- a/src/messaging/maildirFolder.cpp
+++ b/src/messaging/maildirFolder.cpp
@@ -168,7 +168,11 @@ void maildirFolder::registerMessage(maildirMessage* msg)
 
 void maildirFolder::unregisterMessage(maildirMessage* msg)
 {
-	std::remove(m_messages.begin(), m_messages.end(), msg);
+	std::vector <maildirMessage*>::iterator it =
+		std::find(m_messages.begin(), m_messages.end(), msg);
+
+	if (it != m_messages.end())
+		m_messages.erase(it);
 }