diff --git a/Sources/app/src/main/java/Popups/RemovePopup.java b/Sources/app/src/main/java/Popups/RemovePopup.java
index f856b7ec429fbbdaf9324cfe18f9e7671ba3e3ba..cb252c714d4966da60d2d32de48b4fb9801d150c 100644
--- a/Sources/app/src/main/java/Popups/RemovePopup.java
+++ b/Sources/app/src/main/java/Popups/RemovePopup.java
@@ -1,4 +1,72 @@
 package Popups;
 
+import android.content.Context;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.furwaz.roomview.R;
+
+import Common.Callback;
+import Structures.BuildingInfo;
+
 public class RemovePopup {
+    public static final int MODE_NEW = 1;
+    public static final int MODE_EDIT = 2;
+
+    Context context = null;
+    AlertDialog dialog = null;
+    TextView remove_title = null;
+    TextView remove_msg = null;
+    Button validate_btn = null;
+    Button cancel_btn = null;
+
+    public RemovePopup(Context context, Callback onCreate, Callback onCancel, Callback onValidate) {
+        AlertDialog.Builder builder = new AlertDialog.Builder(context);
+        dialog = builder.create();
+        LayoutInflater factory = LayoutInflater.from(context);
+        View popup = factory.inflate(R.layout.remove_popup, null);
+        dialog.setView(popup);
+
+        this.context = context;
+
+        dialog.setOnShowListener(dialogInterface -> {
+            remove_title = popup.findViewById(R.id.remove_title);
+            remove_msg = popup.findViewById(R.id.remove_msg);
+            validate_btn = popup.findViewById(R.id.btn_validate_room);
+            cancel_btn = popup.findViewById(R.id.btn_cancel_room);
+
+            onCreate.call(this);
+
+            cancel_btn.setOnClickListener(view -> onCancel.call(this));
+            validate_btn.setOnClickListener(view -> onValidate.call(this));
+        });
+        dialog.show();
+    }
+
+    public void dismiss() {
+        dialog.dismiss();
+    }
+
+    public void setTitleValue(String value) {
+        remove_title.setText(
+                context.getResources().getString(R.string.remove_title).replace("{{value}}", value)
+        );
+    }
+
+    public void setMessageValue(String value) {
+        remove_msg.setText(
+                context.getResources().getString(R.string.remove_msg).replace("{{value}}", value)
+        );
+    }
+
+    public void show() {
+        dialog.show();
+    }
 }
diff --git a/Sources/app/src/main/java/com/furwaz/roomview/BuildingActivity.java b/Sources/app/src/main/java/com/furwaz/roomview/BuildingActivity.java
index 0a12b2cbe593d422f6124d0324944026da170c76..b352572727684237f6794cfbac7906ef0761b4af 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/BuildingActivity.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/BuildingActivity.java
@@ -25,6 +25,7 @@ import java.util.Date;
 import Common.BuildingManager;
 import Common.InfoBinding;
 import Popups.BuildingPopup;
+import Popups.RemovePopup;
 import Popups.RoomPopup;
 import Structures.BuildingInfo;
 import Structures.RoomInfo;
@@ -53,7 +54,26 @@ public class BuildingActivity extends AppCompatActivity {
         room_lv.setAdapter(room_adapter);
 
         room_adapter.setOnRemoveListener(param -> {
-            building.removeRoom((RoomInfo) param);
+            new RemovePopup(
+                    this,
+                    param2 -> {
+                        RemovePopup popup = (RemovePopup) param2;
+                        String value = ((RoomInfo) param).getName();
+                        popup.setTitleValue(value);
+                        popup.setMessageValue(value);
+                        return null;
+                    },
+                    param2 -> {
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    },
+                    param2 -> {
+                        building.removeRoom((RoomInfo) param);
+                        room_adapter.setData(building.getRooms());
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    }
+            ).show();
             return null;
         });
 
diff --git a/Sources/app/src/main/java/com/furwaz/roomview/MainActivity.java b/Sources/app/src/main/java/com/furwaz/roomview/MainActivity.java
index aaecc6417fbc21f15b14e7b8ecef7ed780f55bf4..3d5db8a05bd8fb341707fa2f08be008a1c9ce942 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/MainActivity.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/MainActivity.java
@@ -32,7 +32,9 @@ import Common.BuildingManager;
 import Common.ImageManager;
 import Common.InfoBinding;
 import Popups.BuildingPopup;
+import Popups.RemovePopup;
 import Structures.BuildingInfo;
+import Structures.RoomInfo;
 import Views.InfoAdapter;
 
 public class MainActivity extends AppCompatActivity {
@@ -53,7 +55,26 @@ public class MainActivity extends AppCompatActivity {
         building_lv.setAdapter(building_adapter);
 
         building_adapter.setOnRemoveListener(param -> {
-            BuildingManager.removeBuilding((BuildingInfo) param);
+            new RemovePopup(
+                    this,
+                    param2 -> {
+                        RemovePopup popup = (RemovePopup) param2;
+                        String value = ((BuildingInfo) param).getName();
+                        popup.setTitleValue(value);
+                        popup.setMessageValue(value);
+                        return null;
+                    },
+                    param2 -> {
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    },
+                    param2 -> {
+                        BuildingManager.removeBuilding((BuildingInfo) param);
+                        building_adapter.setData(BuildingManager.getBuildings());
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    }
+            ).show();
             return null;
         });
 
diff --git a/Sources/app/src/main/java/com/furwaz/roomview/RoomActivity.java b/Sources/app/src/main/java/com/furwaz/roomview/RoomActivity.java
index e9a71ac88932bf3ab279b90ebd65e3444ee20c31..f588a389a14f7ee07d6709e398940a95e47f1562 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/RoomActivity.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/RoomActivity.java
@@ -30,6 +30,7 @@ import java.util.Locale;
 import Common.BuildingManager;
 import Common.InfoBinding;
 import Popups.PathwayPopup;
+import Popups.RemovePopup;
 import Popups.RoomPopup;
 import Popups.ZonePopup;
 import Structures.BuildingInfo;
@@ -80,7 +81,29 @@ public class RoomActivity extends AppCompatActivity {
         zone_adapter = new InfoAdapter<ZoneInfo>(this, room.getZones(), noDataLayout, R.layout.zone_tile);
         room_lv.setAdapter(zone_adapter);
 
-        zone_adapter.setOnRemoveListener(param -> { room.removeZone((ZoneInfo) param); return null; });
+        zone_adapter.setOnRemoveListener(param -> {
+            new RemovePopup(
+                    this,
+                    param2 -> {
+                        RemovePopup popup = (RemovePopup) param2;
+                        String value = ((ZoneInfo) param).getName();
+                        popup.setTitleValue(value);
+                        popup.setMessageValue(value);
+                        return null;
+                    },
+                    param2 -> {
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    },
+                    param2 -> {
+                        room.removeZone((ZoneInfo) param);
+                        zone_adapter.setData(room.getZones());
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    }
+            ).show();
+            return null;
+        });
         zone_adapter.setOnEditListener(param -> {
             Intent intent = new Intent(this, ZoneActivity.class);
             intent.putExtra("building", BuildingManager.getBuildings().indexOf(building));
@@ -101,7 +124,29 @@ public class RoomActivity extends AppCompatActivity {
         pathways_adapter = new InfoAdapter<PathInfo>(this, room.getPaths(), noPathwaysLayout, R.layout.pathway_tile);
         pathways_lv.setAdapter(pathways_adapter);
 
-        pathways_adapter.setOnRemoveListener(param -> { room.removePath((PathInfo) param); return null; });
+        pathways_adapter.setOnRemoveListener(param -> {
+            new RemovePopup(
+                    this,
+                    param2 -> {
+                        RemovePopup popup = (RemovePopup) param2;
+                        String value = ((PathInfo) param).getName();
+                        popup.setTitleValue(value);
+                        popup.setMessageValue(value);
+                        return null;
+                    },
+                    param2 -> {
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    },
+                    param2 -> {
+                        room.removePath((PathInfo) param);
+                        pathways_adapter.setData(room.getPaths());
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    }
+            ).show();
+            return null;
+        });
         pathways_adapter.setOnEditListener(param -> {
             Intent intent = new Intent(this, PathwayActivity.class);
             intent.putExtra("building", BuildingManager.getBuildings().indexOf(building));
diff --git a/Sources/app/src/main/java/com/furwaz/roomview/ZoneActivity.java b/Sources/app/src/main/java/com/furwaz/roomview/ZoneActivity.java
index 5a934f43e096fad4dc32dafa1364641fd7a0bb36..3f1b89a84508aec26011bbe8060ca06094997f3b 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/ZoneActivity.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/ZoneActivity.java
@@ -15,9 +15,11 @@ import android.widget.Toast;
 import Common.BuildingManager;
 import Common.InfoBinding;
 import Popups.PhotoPopup;
+import Popups.RemovePopup;
 import Popups.ZonePopup;
 import Structures.BuildingInfo;
 import Structures.Orientation;
+import Structures.PathInfo;
 import Structures.PhotoInfo;
 import Structures.RoomInfo;
 import Structures.ZoneInfo;
@@ -51,8 +53,27 @@ public class ZoneActivity extends AppCompatActivity {
         photo_lv.setAdapter(photo_adapter);
 
         photo_adapter.setOnRemoveListener(param -> {
-            zone.removePhoto((PhotoInfo) param);
-            checkForAddButton();
+            new RemovePopup(
+                    this,
+                    param2 -> {
+                        RemovePopup popup = (RemovePopup) param2;
+                        String value = stringifyOrientation(((PhotoInfo) param).getOrientation());
+                        popup.setTitleValue(value);
+                        popup.setMessageValue(value);
+                        return null;
+                    },
+                    param2 -> {
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    },
+                    param2 -> {
+                        zone.removePhoto((PhotoInfo) param);
+                        checkForAddButton();
+                        photo_adapter.setData(zone.getPhotos());
+                        ((RemovePopup) param2).dismiss();
+                        return null;
+                    }
+            ).show();
             return null;
         });
         photo_adapter.setOnEditListener(param -> {
diff --git a/Sources/app/src/main/res/layout/remove_popup.xml b/Sources/app/src/main/res/layout/remove_popup.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9f8c8d00a73b3ddc82ebd70c44122ddcfdbeb393
--- /dev/null
+++ b/Sources/app/src/main/res/layout/remove_popup.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:background="@color/slate_50">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:background="@color/blue_500"
+            android:layout_marginBottom="20dp">
+
+            <TextView
+                android:id="@+id/remove_title"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/slate_200"
+                android:text="@string/remove_title"
+                android:textColor="@color/blue_500"
+                android:textSize="20sp"
+                android:layout_marginBottom="4dp"
+                android:textStyle="bold"
+                android:padding="10dp"
+                />
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/remove_msg"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/remove_msg"
+            android:textStyle="bold"
+            android:textColor="@color/slate_600"
+            android:textSize="16sp"
+            android:layout_marginStart="8sp"
+            android:layout_marginEnd="8sp"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginTop="20dp"
+            android:padding="8dp">
+
+            <Button
+                android:id="@+id/btn_cancel_room"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/blue_500"
+                style="@style/Widget.AppCompat.Button.Borderless"
+                android:text="@string/cancel"/>
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:gravity="right">
+                <Button
+                    android:id="@+id/btn_validate_room"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:backgroundTint="@color/red_500"
+                    android:text="@string/remove"/>
+            </LinearLayout>
+        </LinearLayout>
+    </LinearLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/Sources/app/src/main/res/values-fr/strings.xml b/Sources/app/src/main/res/values-fr/strings.xml
index f5e5ef51b2fbcfe944b30d81179d6c28269bb9c4..00729979eb0cffae5dfa488d4ecef6b436fbb748 100644
--- a/Sources/app/src/main/res/values-fr/strings.xml
+++ b/Sources/app/src/main/res/values-fr/strings.xml
@@ -81,4 +81,6 @@
     <string name="walk_zone">Zone correspondante</string>
     <string name="edit_walk">Modifier le déplacement</string>
     <string name="no_zones_available">Aucune zone disponible</string>
+    <string name="remove_title">Supprimer {{value}} ?</string>
+    <string name="remove_msg">"Voulez-vous supprimer {{value}} ?\nCet element sera supprimé pour toujours."</string>
 </resources>
\ No newline at end of file
diff --git a/Sources/app/src/main/res/values/strings.xml b/Sources/app/src/main/res/values/strings.xml
index 4c458fa10012dd9e9d25f10164b706cfbcefbd33..60fa070dc5c03e214b61195f2c210beca11a7592 100644
--- a/Sources/app/src/main/res/values/strings.xml
+++ b/Sources/app/src/main/res/values/strings.xml
@@ -81,4 +81,6 @@
     <string name="walk_zone">Corresponding zone</string>
     <string name="edit_walk">Edit movement</string>
     <string name="no_zones_available">No zones available</string>
+    <string name="remove_title">Remove {{value}} ?</string>
+    <string name="remove_msg">Do you want to remove {{value}} ?\nIt will be deleted for ever.</string>
 </resources>
\ No newline at end of file