--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -239,39 +239,46 @@
     def test_project_delete_not_allowed(self):
         # turn off project delete option
         from allura.ext.admin.admin_main import config
+        old_allow_project_delete = config.get('allow_project_delete', ())
         config['allow_project_delete'] = False
-        # create a subproject
-        self.app.post('/admin/update_mounts', params={
-                'new.install':'install',
-                'new.ep_name':'',
-                'new.ordinal':1,
-                'new.mount_point':'sub1',
-                'new.mount_label':'sub1'})
-        # root project doesn't have delete option
-        r = self.app.get('/p/test/admin/overview')
-        assert not r.html.find('input',{'name':'removal','value':'deleted'})
-        # subprojects can still be deleted
-        r = self.app.get('/p/test/sub1/admin/overview')
-        assert r.html.find('input',{'name':'removal','value':'deleted'})
-        # attempt to delete root project won't do anything
-        self.app.post('/admin/update', params=dict(
-                name='Test Project',
-                shortname='test',
-                removal='deleted',
-                short_description='A Test Project',
-                delete='on'))
-        r = self.app.get('/p/test/admin/overview')
-        assert 'This project has been deleted and is not visible to non-admin users' not in r
-        # make sure subproject delete works
-        self.app.post('/p/test/sub1/admin/update', params=dict(
-                name='sub1',
-                shortname='sub1',
-                removal='deleted',
-                short_description='A Test Project',
-                delete='on'))
-        r = self.app.get('/p/test/sub1/admin/overview')
-        assert 'This project has been deleted and is not visible to non-admin users' in r
-        assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
+        try:
+            # create a subproject
+            self.app.post('/admin/update_mounts', params={
+                    'new.install':'install',
+                    'new.ep_name':'',
+                    'new.ordinal':1,
+                    'new.mount_point':'sub1',
+                    'new.mount_label':'sub1'})
+            # root project doesn't have delete option
+            r = self.app.get('/p/test/admin/overview')
+            assert not r.html.find('input',{'name':'removal','value':'deleted'})
+            # subprojects can still be deleted
+            r = self.app.get('/p/test/sub1/admin/overview')
+            assert r.html.find('input',{'name':'removal','value':'deleted'})
+            # attempt to delete root project won't do anything
+            self.app.post('/admin/update', params=dict(
+                    name='Test Project',
+                    shortname='test',
+                    removal='deleted',
+                    short_description='A Test Project',
+                    delete='on'))
+            r = self.app.get('/p/test/admin/overview')
+            assert 'This project has been deleted and is not visible to non-admin users' not in r
+            # make sure subproject delete works
+            self.app.post('/p/test/sub1/admin/update', params=dict(
+                    name='sub1',
+                    shortname='sub1',
+                    removal='deleted',
+                    short_description='A Test Project',
+                    delete='on'))
+            r = self.app.get('/p/test/sub1/admin/overview')
+            assert 'This project has been deleted and is not visible to non-admin users' in r
+            assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
+        finally:
+            if old_allow_project_delete == ():
+                del config['allow_project_delete']
+            else:
+                config['allow_project_delete'] = old_allow_project_delete
 
     def test_add_remove_trove_cat(self):
         r = self.app.get('/admin/trove')