diff --git a/modules/base/src/export_helper/generic_property_def.hh b/modules/base/src/export_helper/generic_property_def.hh
index 3203bc19876f70e349032f78581d34843756aaa0..11c5dfb80f904acbaf932c238dd3f9cef3541c76 100644
--- a/modules/base/src/export_helper/generic_property_def.hh
+++ b/modules/base/src/export_helper/generic_property_def.hh
@@ -185,6 +185,7 @@ void generic_prop_def(O& bp_class)
     .def("SetGenericFloatProperty", &depr_set_float<C>)
     .def("SetGenericBoolProperty", &depr_set_bool<C>)
     .def("SetGenericStringProperty", &depr_set_string<C>)
+    .def("RemoveProp", &C::RemoveProp)
   ;
 }
 
diff --git a/modules/base/src/generic_property.hh b/modules/base/src/generic_property.hh
index 4ea8d3253cf16236f69e47c84e91d5732f48c987..03ddafedf182842049d04fff9b450615b6216010 100644
--- a/modules/base/src/generic_property.hh
+++ b/modules/base/src/generic_property.hh
@@ -102,6 +102,12 @@ public:
     }
   }
   
+  void RemoveProp(const String& key)
+  {
+    if (map_) {
+      map_->erase(key);
+    }
+  }
   void Assign(const GenericPropContainerImpl& impl)
   {
     if (impl.map_) {
@@ -159,6 +165,7 @@ protected:
   {
     return static_cast<const H*>(this)->GpImpl();
   }  
+  
 public:
   /// \brief checks existence of property
   bool HasProp(const String& key) const {
@@ -296,6 +303,11 @@ public:
   {
     this->GetImpl()->GenericProp(key)=value;
   }
+  
+  void RemoveProp(const String& key)
+  {
+    this->GetImpl()->RemoveProp(key);
+  }
 };