diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c
index 92df56ab67c24f9d013bbdfbf558b60be7962c67..9bcf1a6f201058be4ccda19d1a507faa98e1361a 100644
--- a/src/xpdev/ini_file.c
+++ b/src/xpdev/ini_file.c
@@ -462,6 +462,7 @@ BOOL iniSortSections(str_list_t* list, BOOL sort_keys)
 	new_list = strListInit();
 	if(new_list == NULL) {
 		strListFree(&section_list);
+		strListFree(&root_keys);
 		return FALSE;
 	}
 	strListAppendList(&new_list, root_keys);
@@ -473,6 +474,7 @@ BOOL iniSortSections(str_list_t* list, BOOL sort_keys)
 		iniAppendSectionWithKeys(&new_list, section_list[i], keys, /* ini_style_t */NULL);
 		strListFree(&keys);
 	}
+	strListFree(&section_list);
 	strListFree(list);
 	*list = new_list;
 	return TRUE;