diff --git a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
index 50708b52ab98f53011af34de6d4a255122f6f3cf..9c89bc22cbe78198752e73c76846568ace3d2d68 100755
--- a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
+++ b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js
@@ -540,14 +540,25 @@ nsVmap.nsToolsManager.Select.prototype.selectController = function ($scope, $tim
         var aFeatures = evt.features.getArray();
 
         // Évite les superpositions avec les autres couches si besoin
+        var j = 0;
         for (var i = 0; i < aFeatures.length; i++) {
             this_.avoidSuperpositions(aFeatures[i]).then(function(){
+                j++;
+                if (!j < aFeatures.length) {
+                    setTimeout(function () {
+                        this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray());
+                    });
+                }
             });
         }
 
+        // Cas où avoidSuperpositions n'ait pas effectué de callback
         setTimeout(function () {
-            this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray());
-        });
+            if (j === 0) {
+                console.error('avoidSuperpositions never sents callback');
+                this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray());
+            }
+        }, 3000);
     });
 
     /**
@@ -2215,6 +2226,8 @@ nsVmap.nsToolsManager.Select.prototype.selectController.prototype.avoidSuperposi
         this.setDiffGeom_(aSuperpositionBos, olFeature).then(function(olFeature){
             deferred.resolve(olFeature);
         });
+    } else {
+        deferred.resolve(olFeature);
     }
 
     return deferred.promise;