diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs
index 6f93261a9460692d98617569e7077bdc852b64c7..34b989c795017af302c9eb76b8ef7af87fd680cc 100644
--- a/src/ui/panes/pid_drawing_tool.rs
+++ b/src/ui/panes/pid_drawing_tool.rs
@@ -240,7 +240,6 @@ impl PidPane {
                 }
                 ui.close_menu();
             }
-
             if ui.button("Rotate 90° ⟲").clicked() {
                 if let Some(elem) = self.find_hovered_element_mut(&pointer_pos) {
                     elem.rotation += PI / 2.0;
@@ -257,6 +256,14 @@ impl PidPane {
                 }
                 ui.close_menu();
             }
+            if ui.button("Delete").clicked() {
+                if let Some(idx) = self.find_hovered_element_idx(&pointer_pos) {
+                    self.delete_element(idx);
+                } else {
+                    panic!("No element found where the \"Delete\" action was issued");
+                }
+                ui.close_menu();
+            }
         } else {
             ui.menu_button("Symbols", |ui| {
                 for symbol in Symbol::iter() {
@@ -268,4 +275,13 @@ impl PidPane {
             });
         }
     }
+
+    fn delete_element(&mut self, idx: usize) {
+        // First delete connection referencing this element
+        self.connections
+            .retain(|elem| elem.start != idx && elem.end != idx);
+
+        // Then the element
+        self.elements.remove(idx);
+    }
 }