diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java
index d8d4f089362de965bfa7719df3ea625c6bc79db4..af448dae7daf581ed4d7797003bc9990539d08a4 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java
@@ -64,6 +64,12 @@ public abstract class AbstractTile implements Tile {
         this.longitudeColumns = longitudeColumns;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public void tileUpdateCompleted() throws RuggedException {
+        // do nothing by default
+    }
+
     /** {@inheritDoc} */
     @Override
     public double getMinimumLatitude() {
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
index 554af99c3e0d3529ca361bf554077ecdaa0f5bd6..cea32b7376bf1126ed8455eebeddcaef7dd60366 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java
@@ -24,6 +24,12 @@ import org.orekit.rugged.api.UpdatableTile;
  */
 public interface Tile extends UpdatableTile {
 
+    /** Hook called at the end of tile update completion.
+     * @exception RuggedException if something wrong occurs
+     * (missing data ...)
+     */
+    void tileUpdateCompleted() throws RuggedException;
+
     /** Get minimum latitude.
      * @return minimum latitude
      */
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java
index a840c6524bea86f197034cd83e2896f5ec226e6c..945f16a4896d5e282de77157e46bbf8ac1caa5e4 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java
@@ -98,6 +98,7 @@ public class TilesCache<T extends Tile> {
         // create the tile and retrieve its data
         final T tile = factory.createTile();
         updater.updateTile(latitude, longitude, tile);
+        tile.tileUpdateCompleted();
 
         // store the tile in the eviction cache
         evictionCache[next] = tile;