Index: ext/libicpf/src/cfg_xml.h
===================================================================
diff -u -N -r3e7ccb6efc5089399a7801082d923aeb41f53d2e -r0d9a4d94a98872815d5840d1bcc4d394d455307c
--- ext/libicpf/src/cfg_xml.h	(.../cfg_xml.h)	(revision 3e7ccb6efc5089399a7801082d923aeb41f53d2e)
+++ ext/libicpf/src/cfg_xml.h	(.../cfg_xml.h)	(revision 0d9a4d94a98872815d5840d1bcc4d394d455307c)
@@ -38,15 +38,19 @@
 	/// Closes the search operation
 	virtual void find_close(ptr_t pFindHandle);
 
-	/// Sets a value for a given key (either adds to or replaces the previous value)
-	virtual void set_value(const tchar_t* pszName, const tchar_t* pszValue, bool bAdd);
+	/// Sets a value for a given key
+	virtual void set_value(const tchar_t* pszName, const tchar_t* pszValue, actions a=actions::action_add);
+	/// Clear values for a given property name
+	virtual void clear(const tchar_t* pszName);
 /**@}*/
 
 private:
 	/// Find helper - recursively searches for a specific key node
 	ptr_t find(ptr_t pNodePtr, const tchar_t* pszName);
 	/// Set value helper - searches for a specific node and sets the value
-	void set_value(ptr_t pNodePtr, const tchar_t* pszName, const tchar_t* pszValue, bool bAdd);
+	void set_value(ptr_t pNodePtr, const tchar_t* pszName, const tchar_t* pszValue, actions a=actions::action_add);
+	/// Clear helper - clears the appropriate attribures
+	void clear(ptr_t pNodePtr, const tchar_t* pszName);
 
 protected:
 	ptr_t m_hStorage;		///< Handle to the internal xml storage