diff --git a/src/mapfile.py b/src/mapfile.py
index 05f725b01364d59ebb1fcaaf8e2e224e5ce6d619..42cbd36eeca63af6a5ca6cb76b0baf0137af6d44 100644
--- a/src/mapfile.py
+++ b/src/mapfile.py
@@ -38,6 +38,7 @@ import maptools
 from webapp import KeyExists
 
 import tools
+from extensions import plugins
 
 class MetadataMixin(object):
 
@@ -316,6 +317,8 @@ class FeatureTypeModel(LayerModel):
 
     def configure_layer(self, ws, layer, enabled=True):
 
+        plugins.extend("pre_configure_feature", self, ws, layer)
+
         # We must also update all our personal attributes (type, ...)
         # because we might not have been cloned.
 
@@ -427,6 +430,8 @@ class CoverageModel(LayerModel):
 
     def configure_layer(self, ws, layer, enabled=True):
 
+        plugins.extend("pre_configure_coverage", self, ws, layer)
+
         # We must also update all our personal attributes (type, ...)
         # because we might not have been cloned.
 
diff --git a/src/server.py b/src/server.py
index 5e73e8a19fd51bee497cd23664b77fe6e650b001..b19bc890822dd7b31a0212738fd022d8604fbbf1 100755
--- a/src/server.py
+++ b/src/server.py
@@ -40,7 +40,7 @@ from webapp import HTTPCompatible, urlmap, get_data
 
 import tools
 import maptools
-from tools import get_mapfile, get_mapfile_workspace, get_config, href
+from tools import get_mapfile, get_mapfile_workspace, get_config, href, assert_is_empty
 
 from pyxml import Entries
 
@@ -323,8 +323,7 @@ class featuretype(object):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
         # We need to check if there are any layers using this.
-        assert_is_empty(mg.iter_layers(mra={"name":ft_name, "workspace":ws_name, "storage":ds_name, "type":"featuretype"}),
-                        "featuretype", ft_name)
+        assert_is_empty(mf.iter_layers(mra={"name":ft_name, "workspace":ws_name, "storage":ds_name, "type":"featuretype"}),"featuretype", ft_name)
 
         with webapp.mightNotFound("featureType", datastore=ds_name):
             ws.delete_featuretypemodel(ft_name, ds_name)
@@ -386,7 +385,6 @@ class coveragestore(object):
     def DELETE(self, map_name, ws_name, cs_name, format):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
-
         # We need to check if this datatore is empty.
         assert_is_empty(ws.iter_coverages(cs_name=cs_name), "coveragestore", ds_name)
 
@@ -489,7 +487,7 @@ class coverage(object):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
         # We need to check if there are any layers using this.
-        assert_is_empty(mg.iter_layers(mra={"name":c_name, "workspace":ws_name, "storage":cs_name, "type":"coverage"}),
+        assert_is_empty(mf.iter_layers(mra={"name":c_name, "workspace":ws_name, "storage":cs_name, "type":"coverage"}),
                         "coverage", ft_name)
 
         with webapp.mightNotFound("coverage", coveragestore=cs_name):