diff --git a/libs/pbd/xml++.cc b/libs/pbd/xml++.cc
index 942727a..cf78ca5 100644
--- a/libs/pbd/xml++.cc
+++ b/libs/pbd/xml++.cc
@@ -340,7 +340,9 @@ void
 XMLNode::remove_property(const string & n)
 {
 	if (_propmap.find(n) != _propmap.end()) {
-		_proplist.remove(_propmap[n]);
+		XMLProperty* p = _propmap[n];
+		_proplist.remove (p);
+		delete p;
 		_propmap.erase(n);
 	}
 }
