diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c
index c77a751f40dec149bc2891c9c9a22759ab6d8512..b3a82ed59be01cfa52833e4e8e5290e3c7241708 100644
--- a/src/xpdev/ini_file.c
+++ b/src/xpdev/ini_file.c
@@ -258,6 +258,20 @@ BOOL iniRemoveValue(str_list_t* list, const char* section, const char* key)
 	return(TRUE);
 }
 
+BOOL iniRemoveSection(str_list_t* list, const char* section)
+{
+	size_t	i;
+
+	i=find_section_index(*list,section);
+	if((*list)[i]==NULL)	/* not found */
+		return(FALSE);
+	do {
+		strListDelete(list,i);
+	} while((*list)[i]!=NULL && *(*list)[i]!=INI_OPEN_SECTION_CHAR);
+
+	return(TRUE);
+}
+
 size_t iniAddSection(str_list_t* list, const char* section
 					,ini_style_t* style)
 {
diff --git a/src/xpdev/ini_file.h b/src/xpdev/ini_file.h
index 356558e1a5ac6932eee00c88bf0051fc31f635a9..a12958590b3be94cf13dbf8884079f791557e2fc 100644
--- a/src/xpdev/ini_file.h
+++ b/src/xpdev/ini_file.h
@@ -125,6 +125,7 @@ BOOL		iniKeyExists(str_list_t*, const char* section, const char* key);
 BOOL		iniValueExists(str_list_t*, const char* section, const char* key);
 BOOL		iniRemoveKey(str_list_t*, const char* section, const char* key);
 BOOL		iniRemoveValue(str_list_t*, const char* section, const char* key);
+BOOL		iniRemoveSection(str_list_t*, const char* section);
 
 #if defined(__cplusplus)
 }