diff --git a/src/server.py b/src/server.py
index b19bc890822dd7b31a0212738fd022d8604fbbf1..c90e18ad66d6469721466d0dc24e515c524f4c21 100755
--- a/src/server.py
+++ b/src/server.py
@@ -171,7 +171,7 @@ class datastores(object):
     def POST(self, map_name, ws_name, format):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
-        data = get_data(name="dataStore", mandatory=["name"], authorized=["name", "title", "abstract"])
+        data = get_data(name="dataStore", mandatory=["name"], authorized=["name", "title", "abstract", "connectionParameters"])
         ds_name = data.pop("name")
 
         with webapp.mightConflict("dataStore", workspace=ws_name):
@@ -199,7 +199,7 @@ class datastore(object):
     def PUT(self, map_name, ws_name, ds_name, format):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
-        data = get_data(name="dataStore", mandatory=["name"], authorized=["name", "title", "abstract"])
+        data = get_data(name="dataStore", mandatory=["name"], authorized=["name", "title", "abstract", "connectionParameters"])
         if ds_name != data.pop("name"):
             raise webapp.Forbidden("Can't change the name of a data store.")
 
@@ -346,7 +346,7 @@ class coveragestores(object):
     def POST(self, map_name, ws_name, format):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
-        data = get_data(name="coverageStore", mandatory=["name"], authorized=["name", "title", "abstract"])
+        data = get_data(name="coverageStore", mandatory=["name"], authorized=["name", "title", "abstract", "connectionParameters"])
         cs_name = data.pop("name")
 
         with webapp.mightConflict("coverageStore", workspace=ws_name):
@@ -373,7 +373,7 @@ class coveragestore(object):
     def PUT(self, map_name, ws_name, cs_name, format):
         mf, ws = get_mapfile_workspace(map_name, ws_name)
 
-        data = get_data(name="coverageStore", mandatory=["name"], authorized=["name", "title", "abstract"])
+        data = get_data(name="coverageStore", mandatory=["name"], authorized=["name", "title", "abstract", "connectionParameters"])
         if cs_name != data.pop("name"):
             raise webapp.Forbidden("Can't change the name of a coverage store.")
 
@@ -702,6 +702,12 @@ class layers(object):
 
         with webapp.mightConflict("layer", mapfile=map_name):
             mf.create_layer(ws, model, l_name, l_enabled)
+
+        with webapp.mightNotFound("layer", mapfile=map_name):
+            layer = mf.get_layer(l_name)
+        
+        layer.ms.dump = mapscript.MS_TRUE
+
         mf.save()
 
         webapp.Created("%s/maps/%s/layers/%s%s" % (web.ctx.home, map_name, l_name, (".%s" % format) if format else ""))