diff --git a/src/mapfile.py b/src/mapfile.py
index edd15d8c0badde4fae50352e17a8017c842c5079..dbe4ecf490c1e9c25999c240b15f0f8f373c4029 100644
--- a/src/mapfile.py
+++ b/src/mapfile.py
@@ -81,7 +81,7 @@ class Layer(MetadataMixin):
     def enable(self, enabled=True):
         requests = ["GetCapabilities", "GetMap", "GetFeatureInfo", "GetLegendGraphic"]
         self.ms.status = mapscript.MS_ON if enabled else mapscript.MS_OFF
-        self.set_metadata("wms_enable_request",  " ".join(('%s' if enabled else "!%s") % c for c in requests))
+        self.set_metadata("wms_enable_request", " ".join(('%s' if enabled else "!%s") % c for c in requests))
 
     def get_type_name(self):
         return {
@@ -349,7 +349,8 @@ class FeatureTypeModel(LayerModel):
                 })
 
         if enabled:
-            layer.set_metadata("wfs_enable_request", "GetCapabilities GetFeature DescribeFeatureType")
+            layer.set_metadata("wfs_enable_request", 
+                               "GetCapabilities GetFeature DescribeFeatureType")
 
         # Configure the layer based on information from the store.
         ds = ws.get_datastore(self.get_mra_metadata("storage"))
@@ -365,17 +366,24 @@ class FeatureTypeModel(LayerModel):
                 })
             field_names.append(field.get_name())
 
+        geometry_column = ft.get_geometry_column()
+        if geometry_column == None:
+            geometry_column = "geometry"
         layer.set_metadatas({
-            "wfs_include_items": ",".join(field_names),
+            "ows_include_items": ",".join(field_names),
             "gml_include_items": ",".join(field_names),
-            "wfs_featureid": ft.get_fid_column(),
-            "gml_featureid": ft.get_fid_column(),
-            "gml_geometries": ft.get_geometry_column(),
-            "gml_%s_type" % ft.get_geometry_column(): ft.get_geomtype_gml(),
+            "gml_geometries": geometry_column,
+            "gml_%s_type" % geometry_column: ft.get_geomtype_gml(),
             # TODO: Add gml_<geometry name>_occurances,
             "wfs_srs": "EPSG:4326",
             "wfs_getfeature_formatlist": "OGRGML,SHAPEZIP",
             })
+        
+        if ft.get_fid_column() != None:
+            layer.set_metadatas({
+                "wfs_featureid": ft.get_fid_column(),
+                "gml_featureid": ft.get_fid_column(),
+                })
 
         plugins.extend("post_configure_vector_layer", self, ws, ds, ft, layer)
 
@@ -776,46 +784,33 @@ class Mapfile(MetadataMixin):
         # We still clone, because we have to start from something,
         # but everything should be configured() anyway.
         layer = Layer(model.ms.clone())
-        layer.ms.name = l_name
-        layer.ms.dump = mapscript.MS_TRUE
-        layer.ms.tolerance = 6
-        layer.ms.toleranceunits = mapscript.MS_PIXELS
-        layer.ms.template = "foo.html"
+        self.ms.insertLayer(layer.ms)
 
+        layer.ms.name = l_name      
         layer.enable(l_enabled)
-        self.ms.insertLayer(layer.ms)
+
+        # is queryable (by default):
+        layer.ms.template = "foo.html" # TODO: Support html format response
 
         l_metadata["wms_name"] = l_name
+
         l_metadata.setdefault("wms_title", l_name)
         l_metadata.setdefault("wms_abstract", l_name)
         l_metadata.setdefault("wms_bbox_extended", "true")
-
         # TODO: Add other default values as above:
-        # "wms_keywordlist"
-        # "wms_keywordlist_vocabulary"
-        # "wms_keywordlist_<vocabulary>_items"
-        # "wms_srs"
-        # "wms_dataurl_format"
-        # "wms_dataurl_href"
-        # "wms_getmap_formatlist"
-        # "wms_getfeatureinfo_formatlist"
-        # "wms_getlegendgraphic_formatlist"
-        # "ows_attribution_title"
-        # "ows_attribution_onlineresource": ""
-        # "ows_attribution_logourl_href"
-        # "ows_attribution_logourl_format"
-        # "ows_attribution_logourl_height"
-        # "ows_attribution_logourl_width"
-        # "ows_identifier_authority"
-        # "ows_identifier_value"
-        # "ows_authorityurl_name"
-        # "ows_authorityurl_href"
-        # "ows_metadataurl_type"
-        # "ows_metadataurl_href"
-        # "ows_metadataurl_format"
+        # wms_keywordlist, wms_keywordlist_vocabulary 
+        # wms_keywordlist_<vocabulary>_items
+        # wms_srs
+        # wms_dataurl_(format|href)
+        # ows_attribution_(title|onlineresource)
+        # ows_attribution_logourl_(href|format|height|width)
+        # ows_identifier_(authority|value)
+        # ows_authorityurl_(name|href)
+        # ows_metadataurl_(type|href|format)
 
         # TODO: pass correct data (title, abstract, ...) to layer.update()
         layer.update(l_metadata)
+        
         model.configure_layer(ws, layer, l_enabled)
 
         # TODO: Check if class already exists.
@@ -848,7 +843,6 @@ class Mapfile(MetadataMixin):
                         </UserStyle> \
                       </NamedLayer> \
                     </StyledLayerDescriptor>'
-
         elif layer.ms.type == mapscript.MS_LAYER_LINE:
             # TODO: move this sld in external files
             s_name = 'default_line'
@@ -872,7 +866,6 @@ class Mapfile(MetadataMixin):
                         </UserStyle> \
                       </NamedLayer> \
                     </StyledLayerDescriptor>'
-
         elif layer.ms.type == mapscript.MS_LAYER_POLYGON:
             # TODO: move this sld in external files
             s_name = 'default_polygon'
@@ -899,9 +892,7 @@ class Mapfile(MetadataMixin):
                         </UserStyle> \
                       </NamedLayer> \
                     </StyledLayerDescriptor>'
-
         layer.add_style_sld(self, s_name, style)
-        return layer
 
     def delete_layer(self, l_name):
         layer = self.get_layer(l_name)
@@ -944,7 +935,6 @@ class Mapfile(MetadataMixin):
         with self.mra_metadata("layergroups", {}) as layergroups:
             del layergroups[lg_name]
 
-
     # Styles:
 
     def iter_styles(self):
diff --git a/src/stores.py b/src/stores.py
index d4a74909c1812a937411b3c940fd90e6e25b232a..4dffa892b22f19d2a9503a4108c1b81631b759f5 100644
--- a/src/stores.py
+++ b/src/stores.py
@@ -167,9 +167,13 @@ class Featuretype(object):
         return self.backend.GetName()
 
     def get_fid_column(self):
+        if self.backend.GetFIDColumn() == "":
+            return None
         return self.backend.GetFIDColumn()
 
     def get_geometry_column(self):
+        if self.backend.GetGeometryColumn() == "":
+            return None
         return self.backend.GetGeometryColumn()
 
     def get_extent(self):