diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
index 350df7de5e..a6faace8a4 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
@@ -66,7 +66,7 @@ limitations under the License.
       .deleted #mainContainer,
       .global,
       #addPermission,
-      #updateBtns,
+      #deleteBtn,
       .editingRef .header,
       .editContainer {
         display: none;
@@ -74,13 +74,19 @@ limitations under the License.
       .editing #editBtn {
         display: flex;
       }
-      /* TODO @beckysiegel add back when editing allowed */
-      /* .deleted #deletedContainer,
+      .deleted #deletedContainer {
+        display: flex;
+      }
+      /* TODO @beckysiegel add back when adding permission allowed */
+      /* .editing #addPermission, */
       #mainContainer,
-      .editing #addPermission,
-      .editing #updateBtns  {
+      .editing #deleteBtn  {
         display: block;
-      } */
+      }
+      .editing #deleteBtn,
+      #undoRemoveBtn {
+        padding-right: .7em;
+      }
       .editingRef .editContainer {
         display: flex;
       }
@@ -100,11 +106,10 @@ limitations under the License.
               
             
           
-          
           Remove
-          
+              link
+              id="deleteBtn"
+              on-tap="_handleRemoveReference">Remove
         
         
           
       
       
-        [[_computeSectionName(section.id)]] was deleted
+        [[_computeSectionName(section.id)]] was deleted
         Undo
       
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
index c603828c05..128c9965a1 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
@@ -14,6 +14,12 @@
 (function() {
   'use strict';
 
+  /**
+   * Fired when the section has been modified or removed.
+   *
+   * @event access-modified
+   */
+
   const GLOBAL_NAME = 'GLOBAL_CAPABILITIES';
 
   // The name that gets automatically input when a new reference is added.
@@ -85,6 +91,8 @@
       // Restore original values if no longer editing.
       if (!editing) {
         this._editingRef = false;
+        this._deleted = false;
+        delete this.section.value.deleted;
         // Restore section ref.
         this.set(['section', 'id'], this._originalId);
       }
@@ -159,7 +167,8 @@
 
     _handleRemoveReference() {
       this._deleted = true;
-      this.set('section.value.deleted', true);
+      this.section.value.deleted = true;
+      this.dispatchEvent(new CustomEvent('access-modified', {bubbles: true}));
     },
 
     _handleUndoRemove() {
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
index fb07f7ad83..80161fb599 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
@@ -462,9 +462,11 @@ limitations under the License.
         test('remove section', () => {
           element.editing = true;
           assert.isFalse(element._deleted);
+          assert.isNotOk(element.section.value.deleted);
           MockInteractions.tap(element.$.deleteBtn);
           flushAsynchronousOperations();
           assert.isTrue(element._deleted);
+          assert.isTrue(element.section.value.deleted);
           assert.isTrue(element.$.section.classList.contains('deleted'));
           assert.isTrue(element.section.value.deleted);
 
@@ -472,6 +474,13 @@ limitations under the License.
           flushAsynchronousOperations();
           assert.isFalse(element._deleted);
           assert.isNotOk(element.section.value.deleted);
+
+          MockInteractions.tap(element.$.deleteBtn);
+          assert.isTrue(element._deleted);
+          assert.isTrue(element.section.value.deleted);
+          element.editing = false;
+          assert.isFalse(element._deleted);
+          assert.isNotOk(element.section.value.deleted);
         });
       });
     });
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
index cfb0ad542c..c8559ad2b1 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.js
@@ -99,6 +99,7 @@
       // Restore original values if no longer editing.
       if (!editing) {
         this._deleted = false;
+        delete this.permission.value.deleted;
         this._groupFilter = '';
         this._rules = this._rules.filter(rule => !rule.value.added);
 
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
index ec93a5c509..55aa4f4bb0 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission_test.html
@@ -237,10 +237,15 @@ limitations under the License.
       });
 
       test('_handleRemovePermission', () => {
+        element.editing = true;
         element.permission = {value: {rules: {}}};
         element._handleRemovePermission();
         assert.isTrue(element._deleted);
         assert.isTrue(element.permission.value.deleted);
+
+        element.editing = false;
+        assert.isFalse(element._deleted);
+        assert.isNotOk(element.permission.value.deleted);
       });
 
       test('_handleUndoRemove', () => {
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_test.html b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_test.html
index 12d2e4a58a..9d876cb9aa 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_test.html
@@ -367,7 +367,7 @@ limitations under the License.
         assert.deepEqual(element._computeAddAndRemove(), {add: {}, remove: {}});
         element._local['refs/*'].updatedId = 'refs/for/bar';
         element._local['refs/*'].modified = true;
-        const expectedInput = {
+        let expectedInput = {
           add: {
             'refs/for/bar': {
               modified: true,
@@ -394,6 +394,16 @@ limitations under the License.
           },
         };
         assert.deepEqual(element._computeAddAndRemove(), expectedInput);
+        element._local['refs/*'].deleted = true;
+        expectedInput = {
+          add: {},
+          remove: {
+            'refs/*': {
+              permissions: {},
+            },
+          },
+        };
+        assert.deepEqual(element._computeAddAndRemove(), expectedInput);
       });
 
       test('_computeAddAndRemove combinations', () => {
@@ -500,6 +510,17 @@ limitations under the License.
           },
         };
         assert.deepEqual(element._computeAddAndRemove(), expectedInput);
+
+        expectedInput = {
+          add: {},
+          remove: {
+            'refs/*': {
+              permissions: {},
+            },
+          },
+        };
+        element._local['refs/*'].deleted = true;
+        assert.deepEqual(element._computeAddAndRemove(), expectedInput);
       });
 
       test('_handleSaveForReview', done => {