diff --git a/snf-astakos-app/astakos/im/functions.py b/snf-astakos-app/astakos/im/functions.py
index 513c94604ae65fe5cde98cece2d8bbe40b8e3739..5bc3f2a12cec1267bda525a4d9b7c8004515ea66 100644
--- a/snf-astakos-app/astakos/im/functions.py
+++ b/snf-astakos-app/astakos/im/functions.py
@@ -1110,6 +1110,9 @@ def terminate(project_id, request_user=None, reason=None):
     project = get_project_for_update(project_id)
     project_check_allowed(project, request_user, level=ADMIN_LEVEL)
     checkAlive(project)
+    if project.is_base:
+        m = _(astakos_messages.BASE_NO_TERMINATE) % project.uuid
+        raise ProjectConflict(m)
 
     project.terminate(actor=request_user, reason=reason)
     quotas.qh_sync_project(project)
diff --git a/snf-astakos-app/astakos/im/messages.py b/snf-astakos-app/astakos/im/messages.py
index 7182bcbd9ee474df7b6ade0f7e916ddb452fe52a..78ce6bbecc6ae7e57b3a0dc67f9fb948706c3ba8 100644
--- a/snf-astakos-app/astakos/im/messages.py
+++ b/snf-astakos-app/astakos/im/messages.py
@@ -228,6 +228,7 @@ UNIQUE_PROJECT_NAME_CONSTRAIN_ERR = (
 NOT_ALIVE_PROJECT = 'Project %s is not alive.'
 NOT_SUSPENDED_PROJECT = 'Project %s is not suspended.'
 NOT_TERMINATED_PROJECT = 'Project %s is not terminated.'
+BASE_NO_TERMINATE = "Cannot terminate: %s is a base project."
 NOT_ALLOWED = 'You do not have the permissions to perform this action.'
 MEMBER_NUMBER_LIMIT_REACHED = (
     'You have reached the maximum number of members for this Project.')