diff --git a/pdf.c b/pdf.c
index f98d81acf237ca085686d351ee65da8d43b540fc..01ea6f349a07553568386f1ceb6f28151f55da6d 100644
--- a/pdf.c
+++ b/pdf.c
@@ -127,7 +127,7 @@ void log_message(uint64_t severity, const char *format, ...)
 	msg = malloc(sizeof(log_message));
 	msg->message = message;
 	msg->severity = severity;
-
+	logs[log_messages] = msg;
 	log_messages += 1;
 }
 
@@ -135,7 +135,7 @@ void print_log_messages()
 {
 	log_entry *entry;
 
-	for(int i = 0; i < log_messages; i++)
+	for(uint64_t i = 0; i < log_messages; i++)
 	{
 		entry = logs[i];
 		if(log_level <= entry->severity)
@@ -5945,5 +5945,8 @@ main(int argc, char *argv[])
 			return (ecode);
 	}
 
+	/* Print errors to stderr */
+	print_log_messages();
+	free_log_messages();
 	return 0;
 }