diff --git a/src/components/Feature/Detail/FeatureHeader.vue b/src/components/Feature/Detail/FeatureHeader.vue
index 0da226c012194aebc3d6842deefa00fbac1f6f43..c4472199f25175a9ac4a1a647d7c44b2f6af1d02 100644
--- a/src/components/Feature/Detail/FeatureHeader.vue
+++ b/src/components/Feature/Detail/FeatureHeader.vue
@@ -56,7 +56,7 @@
           </button>
 
           <button
-            v-if="fastEditionMode"
+            v-if="fastEditionMode && userCanFastEdit"
             id="previous-feature"
             :class="['ui button button-hover-orange tiny-margin', { disabled: false }]"
             data-tooltip="Enregistrer les modifications"
@@ -192,6 +192,13 @@ export default {
       return this.USER_LEVEL_PROJECTS && this.USER_LEVEL_PROJECTS[this.$route.params.slug] === 'Modérateur';
     },
 
+    userCanFastEdit() {
+      const superiorRoles = ['contributor', 'super_contributor', 'moderator', 'admin'];
+      return this.USER_LEVEL_PROJECTS &&
+        superiorRoles.includes(this.USER_LEVEL_PROJECTS[this.$route.params.slug]) ||
+          this.user.is_superuser;
+    },
+
     queryparams() {
       return this.$route.query.offset >= 0 ? {
         previous: parseInt(this.$route.query.offset) - 1,
@@ -214,7 +221,7 @@ export default {
       });
     },
     saveFastEdition() {
-      this.$store.dispatch('feature/SEND_FEATURE', this.currentRouteName)
+      this.$store.dispatch('feature/SEND_FEATURE', this.$route.name)
         .then(() => console.log('sent'));
     }
   }
diff --git a/src/store/modules/feature.store.js b/src/store/modules/feature.store.js
index ec5b373b1069b0ef5d927329d82e0d528f2aeb4d..743d9e8c7741fc42127da7165aa2c86484283690 100644
--- a/src/store/modules/feature.store.js
+++ b/src/store/modules/feature.store.js
@@ -209,14 +209,15 @@ const feature = {
         for (const field of state.extra_forms) {
           extraFormObject[field.name] = field.value;
         }
+        const feature = state.form || state.currentFeature;
         return {
-          id: state.form.feature_id,
+          id: feature.feature_id,
           type: 'Feature',
-          geometry: state.form.geometry,
+          geometry: feature.geometry || feature.geom,
           properties: {
-            title: state.form.title,
-            description: state.form.description.value,
-            status: state.form.status.value,
+            title: feature.title,
+            description: feature.description.value,
+            status: feature.status.value,
             project: rootState.projects.project.slug,
             feature_type: rootState['feature-type'].current_feature_type_slug,
             ...extraFormObject
@@ -227,7 +228,7 @@ const feature = {
       const geojson = createGeojson();
       let url = `${rootState.configuration.VUE_APP_DJANGO_API_BASE}features/`;
       if (routeName !== 'ajouter-signalement') {
-        url += `${state.form.feature_id}/?
+        url += `${geojson.id}/?
         feature_type__slug=${rootState['feature-type'].current_feature_type_slug} 
         &project__slug=${rootState.projects.project.slug}`;
       }
@@ -260,7 +261,7 @@ const feature = {
             const updateMsg = {
               project: rootState.projects.project.slug,
               type: routeName === 'ajouter-signalement' ? 'post' : 'put',
-              featureId: state.form.feature_id,
+              featureId: geojson.id,
               geojson: geojson
             };
             arraysOffline.push(updateMsg);
diff --git a/src/store/modules/projects.store.js b/src/store/modules/projects.store.js
index 969f79b2cb8c7cb0930dc5abf814379aca2f58e7..14266f6d615d49831ad0c04a2b9337575ec8587f 100644
--- a/src/store/modules/projects.store.js
+++ b/src/store/modules/projects.store.js
@@ -67,6 +67,7 @@ const projectsStore = {
 
   actions: {
     async GET_ALL_PROJECTS({ rootState, commit }) {
+      console.trace('GET_ALL_PROJECTS');
       try {
         const response = await axios
           .get(`${rootState.configuration.VUE_APP_DJANGO_API_BASE}projects/`);