diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 30eed555268c810f1d9c0c3f7f64d1cd8316e80d..17fb0010dba71670bf8fec4f82c1403557c7c039 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -2528,6 +2528,7 @@ static int imap_store_file(char *dir, char *mailboxuser, char *mailboxcontext, i
 	rewind(p);
 	if (!(buf = ast_malloc(len+1))) {
 		ast_log(LOG_ERROR, "Can't allocate %ld bytes to read message\n", len+1);
+		fclose(p);
 		if(tempcopy)
 			*(vmu->email) = '\0';
 		return -1;