diff --git a/api/dao/consistencychecker.py b/api/dao/consistencychecker.py
index 62104d7e15dad113eda6c6f1067bfd00e991592d..7b6eea861808a80409992d411e8a087579152213 100644
--- a/api/dao/consistencychecker.py
+++ b/api/dao/consistencychecker.py
@@ -23,10 +23,6 @@ def get_container_storage_checker(action, cont_name):
         return field_on_container('acquisition', 'acquisitions')
     elif cont_name == 'groups' and action == 'DELETE':
         return check_children('group', 'projects')
-    elif cont_name == 'projects' and action == 'DELETE':
-        return check_children('project', 'sessions')
-    elif cont_name == 'sessions' and action == 'DELETE':
-        return check_children('session', 'acquisitions')
     return noop
 
 def user_on_permission(data_op, **kwargs): # pylint: disable=unused-argument
@@ -64,7 +60,7 @@ def check_children(foreign_key_field, container_name):
         APIConsistencyException: Child document found
     """
     def f(data_op, **kwargs): # pylint: disable=unused-argument
-        if config.db[container_name].find_one({foreign_key_field: data_op['_id']}):
+        if config.db[container_name].find_one({foreign_key_field: data_op['_id'], 'deleted' :{'$exists': False}}):
             raise APIConsistencyException(
                 'DELETE not allowed. Children {} found for {}'.format(container_name, data_op['_id'])
             )
diff --git a/tests/integration_tests/python/test_containers.py b/tests/integration_tests/python/test_containers.py
index 259383ccefb2c73ecf08ddbc9f65d5cf9668d50c..268aae843da32be527351e12c9334ecc5e572e3a 100644
--- a/tests/integration_tests/python/test_containers.py
+++ b/tests/integration_tests/python/test_containers.py
@@ -1169,10 +1169,11 @@ def test_fields_list_requests(data_builder, file_form, as_admin):
     assert not a['files'][0].get('info')
 
 
-def test_container_delete_tag(data_builder, default_payload, as_admin, as_user, file_form, api_db):
+def test_container_delete_tag(data_builder, default_payload, as_root, as_admin, as_user, file_form, api_db):
     gear_doc = default_payload['gear']['gear']
     gear_doc['inputs'] = {'csv': {'base': 'file'}}
     gear = data_builder.create_gear(gear=gear_doc)
+    group = data_builder.create_group()
     project = data_builder.create_project()
     session = data_builder.create_session()
     acquisition = data_builder.create_acquisition()
@@ -1192,6 +1193,10 @@ def test_container_delete_tag(data_builder, default_payload, as_admin, as_user,
     })
     assert r.ok
 
+    # try to delete group with project
+    r = as_root.delete('/groups/' + group)
+    assert r.status_code == 400
+
     # try to delete project without admin perms
     r = as_user.delete('/projects/' + project)
     assert r.status_code == 403
@@ -1256,3 +1261,7 @@ def test_container_delete_tag(data_builder, default_payload, as_admin, as_user,
     assert as_admin.get('/sessions').json() == []
     assert as_admin.get('/acquisitions').json() == []
     assert as_admin.get('/collections').json() == []
+
+    # test that the (now) empty group can be deleted
+    assert as_root.delete('/groups/' + group).ok
+