diff --git a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
index af6d959af3cc7bd772f1172a398cba5b1ffa1fe3..841ebadc3c95307592cf670dccf4f2a554aaec3a 100644
--- a/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
+++ b/src/main/java/net/geant/nmaas/portal/api/market/ApplicationController.java
@@ -29,6 +29,7 @@ import net.geant.nmaas.portal.persistent.entity.Role;
 import net.geant.nmaas.portal.persistent.entity.User;
 import net.geant.nmaas.portal.persistent.repositories.RatingRepository;
 import net.geant.nmaas.portal.service.ApplicationInstanceService;
+import net.geant.nmaas.portal.service.ApplicationSubscriptionService;
 import net.geant.nmaas.portal.service.impl.ApplicationServiceImpl;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.http.HttpStatus;
@@ -86,6 +87,8 @@ public class ApplicationController extends AppBaseController {
 
 	private final AppInstanceController appInstanceController;
 
+	private final ApplicationSubscriptionService applicationSubscriptionService;
+
 	/*
 	 * Application Base Part
 	 */
@@ -166,6 +169,7 @@ public class ApplicationController extends AppBaseController {
 				throw new ProcessingException("Can't delete " + base.getName() + " application base since version " +  app.getVersion() + " is not deleted");
 			}
         }
+		applicationSubscriptionService.unsubscribeAll(base);
 		appBaseService.deleteAppBase(base);
 	}
 
diff --git a/src/main/java/net/geant/nmaas/portal/service/ApplicationSubscriptionService.java b/src/main/java/net/geant/nmaas/portal/service/ApplicationSubscriptionService.java
index 84c21051ac68a3a6a379f60faaee4f30414d66c1..ff46338c3901fc0139357715ce8a8bb154bf540c 100644
--- a/src/main/java/net/geant/nmaas/portal/service/ApplicationSubscriptionService.java
+++ b/src/main/java/net/geant/nmaas/portal/service/ApplicationSubscriptionService.java
@@ -33,6 +33,8 @@ public interface ApplicationSubscriptionService {
 	void unsubscribe(ApplicationSubscription appSub);
 	void unsubscribe(Long applicationId, Long domainId);
 	void unsubscribe(ApplicationBase application, Domain domain);
+
+	void unsubscribeAll(ApplicationBase applicationBase);
 		
 	List<ApplicationBase> getSubscribedApplications();
 	List<ApplicationBase> getSubscribedApplications(Long domainId);
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationSubscriptionServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationSubscriptionServiceImpl.java
index f485ab7570763862c4a3713349648f3da1fa572b..f7bd7b01231603ccc5750c1c855ad5379f98d57e 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationSubscriptionServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/ApplicationSubscriptionServiceImpl.java
@@ -203,6 +203,12 @@ public class ApplicationSubscriptionServiceImpl implements ApplicationSubscripti
 		unsubscribe(appSub);
 	}
 
+	@Override
+	public void unsubscribeAll(ApplicationBase applicationBase) {
+		List<ApplicationSubscription> subList = getSubscriptionsBy(null, applicationBase);
+		subList.forEach(this::unsubscribe);
+	}
+
 	@Override
 	public List<ApplicationBase> getSubscribedApplications() {
 		return getSubscribedApplications(null);
diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
index d77fab9f4abbb31e5c7ed4fabacf086f5a496cf1..7f4ff1affeaf543bb54bc73e8a3b8ddfc255a8c4 100644
--- a/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
+++ b/src/main/java/net/geant/nmaas/portal/service/impl/DomainServiceImpl.java
@@ -27,7 +27,10 @@ import net.geant.nmaas.portal.persistent.entity.UserRole;
 import net.geant.nmaas.portal.persistent.repositories.DomainAnnotationsRepository;
 import net.geant.nmaas.portal.persistent.repositories.DomainRepository;
 import net.geant.nmaas.portal.persistent.repositories.UserRoleRepository;
-import net.geant.nmaas.portal.service.*;
+import net.geant.nmaas.portal.service.ApplicationStatePerDomainService;
+import net.geant.nmaas.portal.service.DomainGroupService;
+import net.geant.nmaas.portal.service.DomainService;
+import net.geant.nmaas.portal.service.UserService;
 import org.apache.commons.lang3.StringUtils;
 import org.modelmapper.ModelMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -74,8 +77,6 @@ public class DomainServiceImpl implements DomainService {
     private final ApplicationEventPublisher eventPublisher;
     private final DomainAnnotationsRepository domainAnnotationsRepository;
 
-    private final ApplicationSubscriptionService applicationSubscriptionService;
-
     @Value("${domain.global:GLOBAL}")
     String globalDomain;
 
@@ -92,8 +93,7 @@ public class DomainServiceImpl implements DomainService {
                              ApplicationStatePerDomainService applicationStatePerDomainService,
                              DomainGroupService domainGroupService,
                              ApplicationEventPublisher eventPublisher,
-                             DomainAnnotationsRepository domainAnnotationsRepository,
-                             ApplicationSubscriptionService applicationSubscriptionService
+                             DomainAnnotationsRepository domainAnnotationsRepository
     ) {
         this.validator = validator;
         this.namespaceValidator = namespaceValidator;
@@ -108,7 +108,6 @@ public class DomainServiceImpl implements DomainService {
         this.domainGroupService = domainGroupService;
         this.eventPublisher = eventPublisher;
         this.domainAnnotationsRepository = domainAnnotationsRepository;
-        this.applicationSubscriptionService = applicationSubscriptionService;
     }
 
     @Override
@@ -537,7 +536,7 @@ public class DomainServiceImpl implements DomainService {
     public void removeAppBaseFromAllDomains(ApplicationBase base) {
         getDomains().forEach(domain -> {
             removeFromDomain(base, domain);
-            this.applicationSubscriptionService.unsubscribe(base, domain);
+
         });
     }
 
diff --git a/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java b/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
index 90d9ca9a1ccbec2b99140d4e8fea6898a7770261..d3c645f890f97fd226061f03ae830b15588f2e06 100644
--- a/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
+++ b/src/test/java/net/geant/nmaas/portal/service/impl/DomainServiceTest.java
@@ -25,7 +25,10 @@ import net.geant.nmaas.portal.persistent.repositories.DomainAnnotationsRepositor
 import net.geant.nmaas.portal.persistent.repositories.DomainGroupRepository;
 import net.geant.nmaas.portal.persistent.repositories.DomainRepository;
 import net.geant.nmaas.portal.persistent.repositories.UserRoleRepository;
-import net.geant.nmaas.portal.service.*;
+import net.geant.nmaas.portal.service.ApplicationStatePerDomainService;
+import net.geant.nmaas.portal.service.DomainGroupService;
+import net.geant.nmaas.portal.service.DomainService;
+import net.geant.nmaas.portal.service.UserService;
 import net.geant.nmaas.portal.service.impl.domains.DefaultCodenameValidator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -71,8 +74,6 @@ public class DomainServiceTest {
     DomainGroupService domainGroupService;
     DomainAnnotationsRepository domainAnnotationsRepository = mock(DomainAnnotationsRepository.class);
 
-    ApplicationSubscriptionService applicationSubscriptionService = mock(ApplicationSubscriptionService.class);
-
     DomainService domainService;
 
     @BeforeEach
@@ -84,7 +85,7 @@ public class DomainServiceTest {
                 namespaceValidator, domainRepository,
                 domainDcnDetailsRepository, domainTechDetailsRepository, userService,
                 userRoleRepo, dcnRepositoryManager,
-                modelMapper, applicationStatePerDomainService, domainGroupService, eventPublisher, domainAnnotationsRepository, applicationSubscriptionService);
+                modelMapper, applicationStatePerDomainService, domainGroupService, eventPublisher, domainAnnotationsRepository);
         ((DomainServiceImpl) domainService).globalDomain = "GLOBAL";
     }