diff --git a/d2oracle/edit.go b/d2oracle/edit.go
index 91f4ad5975..05c0df3b01 100644
--- a/d2oracle/edit.go
+++ b/d2oracle/edit.go
@@ -1248,16 +1248,23 @@ func deleteReserved(g *d2graph.Graph, baseAST *d2ast.Map, mk *d2ast.Key) (*d2gra
 		return recompile(g)
 	}
 
-	isStyleKey := false
+	isNestedKey := false
 	imported := false
-	for _, id := range d2graph.Key(targetKey) {
+	parts := d2graph.Key(targetKey)
+	for i, id := range parts {
 		_, ok := d2graph.ReservedKeywords[id]
 		if ok {
 			if id == "style" {
-				isStyleKey = true
+				isNestedKey = true
 				continue
 			}
-			if isStyleKey {
+			if id == "label" || id == "icon" {
+				if i < len(parts)-1 {
+					isNestedKey = true
+					continue
+				}
+			}
+			if isNestedKey {
 				if imported {
 					mk.Value = d2ast.MakeValueBox(&d2ast.Null{})
 					appendMapKey(baseAST, mk)
@@ -1306,6 +1313,8 @@ func deleteMapField(m *d2ast.Map, field string) {
 			if n.MapKey.Key.Path[0].Unbox().ScalarString() == field {
 				deleteFromMap(m, n.MapKey)
 			} else if n.MapKey.Key.Path[0].Unbox().ScalarString() == "style" ||
+				n.MapKey.Key.Path[0].Unbox().ScalarString() == "label" ||
+				n.MapKey.Key.Path[0].Unbox().ScalarString() == "icon" ||
 				n.MapKey.Key.Path[0].Unbox().ScalarString() == "source-arrowhead" ||
 				n.MapKey.Key.Path[0].Unbox().ScalarString() == "target-arrowhead" {
 				if n.MapKey.Value.Map != nil {
@@ -1354,7 +1363,9 @@ func deleteObjField(g *d2graph.Graph, obj *d2graph.Object, field string) error {
 			ref.Key.Path[len(ref.Key.Path)-2].Unbox().ScalarString() == obj.ID) ||
 			(len(ref.Key.Path) >= 3 &&
 				ref.Key.Path[len(ref.Key.Path)-1].Unbox().ScalarString() == field &&
-				ref.Key.Path[len(ref.Key.Path)-2].Unbox().ScalarString() == "style" &&
+				(ref.Key.Path[len(ref.Key.Path)-2].Unbox().ScalarString() == "style" ||
+					ref.Key.Path[len(ref.Key.Path)-2].Unbox().ScalarString() == "label" ||
+					ref.Key.Path[len(ref.Key.Path)-2].Unbox().ScalarString() == "icon") &&
 				ref.Key.Path[len(ref.Key.Path)-3].Unbox().ScalarString() == obj.ID) {
 			tmpNodes := make([]d2ast.MapNodeBox, len(ref.Scope.Nodes))
 			copy(tmpNodes, ref.Scope.Nodes)
diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go
index 5d963b80b9..15e816377c 100644
--- a/d2oracle/edit_test.go
+++ b/d2oracle/edit_test.go
@@ -7427,6 +7427,24 @@ a.link: null
 			key: `a.style.fill`,
 			exp: `...@meow
 a.style.fill: null
+`,
+		},
+		{
+			name: "label-near/1",
+
+			text: `yes: {label.near: center-center}
+`,
+			key: `yes.label.near`,
+			exp: `yes
+`,
+		},
+		{
+			name: "label-near/2",
+
+			text: `yes.label.near: center-center
+`,
+			key: `yes.label.near`,
+			exp: `yes
 `,
 		},
 	}
diff --git a/testdata/d2oracle/TestDelete/label-near.exp.json b/testdata/d2oracle/TestDelete/label-near.exp.json
new file mode 100644
index 0000000000..5f1e330217
--- /dev/null
+++ b/testdata/d2oracle/TestDelete/label-near.exp.json
@@ -0,0 +1,106 @@
+{
+  "graph": {
+    "name": "",
+    "isFolderOnly": false,
+    "ast": {
+      "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-1:0:4",
+      "nodes": [
+        {
+          "map_key": {
+            "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-0:3:3",
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "primary": {},
+            "value": {}
+          }
+        }
+      ]
+    },
+    "root": {
+      "id": "",
+      "id_val": "",
+      "attributes": {
+        "label": {
+          "value": ""
+        },
+        "labelDimensions": {
+          "width": 0,
+          "height": 0
+        },
+        "style": {},
+        "near_key": null,
+        "shape": {
+          "value": ""
+        },
+        "direction": {
+          "value": ""
+        },
+        "constraint": null
+      },
+      "zIndex": 0
+    },
+    "edges": null,
+    "objects": [
+      {
+        "id": "yes",
+        "id_val": "yes",
+        "references": [
+          {
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "key_path_index": 0,
+            "map_key_edge_index": -1
+          }
+        ],
+        "attributes": {
+          "label": {
+            "value": "yes"
+          },
+          "labelDimensions": {
+            "width": 0,
+            "height": 0
+          },
+          "style": {},
+          "near_key": null,
+          "shape": {
+            "value": "rectangle"
+          },
+          "direction": {
+            "value": ""
+          },
+          "constraint": null
+        },
+        "zIndex": 0
+      }
+    ]
+  },
+  "err": "<nil>"
+}
diff --git a/testdata/d2oracle/TestDelete/label-near/1.exp.json b/testdata/d2oracle/TestDelete/label-near/1.exp.json
new file mode 100644
index 0000000000..6243ba4b41
--- /dev/null
+++ b/testdata/d2oracle/TestDelete/label-near/1.exp.json
@@ -0,0 +1,106 @@
+{
+  "graph": {
+    "name": "",
+    "isFolderOnly": false,
+    "ast": {
+      "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-1:0:4",
+      "nodes": [
+        {
+          "map_key": {
+            "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-0:3:3",
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "primary": {},
+            "value": {}
+          }
+        }
+      ]
+    },
+    "root": {
+      "id": "",
+      "id_val": "",
+      "attributes": {
+        "label": {
+          "value": ""
+        },
+        "labelDimensions": {
+          "width": 0,
+          "height": 0
+        },
+        "style": {},
+        "near_key": null,
+        "shape": {
+          "value": ""
+        },
+        "direction": {
+          "value": ""
+        },
+        "constraint": null
+      },
+      "zIndex": 0
+    },
+    "edges": null,
+    "objects": [
+      {
+        "id": "yes",
+        "id_val": "yes",
+        "references": [
+          {
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near/1.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "key_path_index": 0,
+            "map_key_edge_index": -1
+          }
+        ],
+        "attributes": {
+          "label": {
+            "value": "yes"
+          },
+          "labelDimensions": {
+            "width": 0,
+            "height": 0
+          },
+          "style": {},
+          "near_key": null,
+          "shape": {
+            "value": "rectangle"
+          },
+          "direction": {
+            "value": ""
+          },
+          "constraint": null
+        },
+        "zIndex": 0
+      }
+    ]
+  },
+  "err": "<nil>"
+}
diff --git a/testdata/d2oracle/TestDelete/label-near/2.exp.json b/testdata/d2oracle/TestDelete/label-near/2.exp.json
new file mode 100644
index 0000000000..9decfa8edf
--- /dev/null
+++ b/testdata/d2oracle/TestDelete/label-near/2.exp.json
@@ -0,0 +1,106 @@
+{
+  "graph": {
+    "name": "",
+    "isFolderOnly": false,
+    "ast": {
+      "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-1:0:4",
+      "nodes": [
+        {
+          "map_key": {
+            "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-0:3:3",
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "primary": {},
+            "value": {}
+          }
+        }
+      ]
+    },
+    "root": {
+      "id": "",
+      "id_val": "",
+      "attributes": {
+        "label": {
+          "value": ""
+        },
+        "labelDimensions": {
+          "width": 0,
+          "height": 0
+        },
+        "style": {},
+        "near_key": null,
+        "shape": {
+          "value": ""
+        },
+        "direction": {
+          "value": ""
+        },
+        "constraint": null
+      },
+      "zIndex": 0
+    },
+    "edges": null,
+    "objects": [
+      {
+        "id": "yes",
+        "id_val": "yes",
+        "references": [
+          {
+            "key": {
+              "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-0:3:3",
+              "path": [
+                {
+                  "unquoted_string": {
+                    "range": "d2/testdata/d2oracle/TestDelete/label-near/2.d2,0:0:0-0:3:3",
+                    "value": [
+                      {
+                        "string": "yes",
+                        "raw_string": "yes"
+                      }
+                    ]
+                  }
+                }
+              ]
+            },
+            "key_path_index": 0,
+            "map_key_edge_index": -1
+          }
+        ],
+        "attributes": {
+          "label": {
+            "value": "yes"
+          },
+          "labelDimensions": {
+            "width": 0,
+            "height": 0
+          },
+          "style": {},
+          "near_key": null,
+          "shape": {
+            "value": "rectangle"
+          },
+          "direction": {
+            "value": ""
+          },
+          "constraint": null
+        },
+        "zIndex": 0
+      }
+    ]
+  },
+  "err": "<nil>"
+}