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 6894ae5a00dbd523c7d0e3c608f2d0e9a8f8cf0e..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
@@ -534,7 +534,10 @@ public class DomainServiceImpl implements DomainService {
 
     @Override
     public void removeAppBaseFromAllDomains(ApplicationBase base) {
-        getDomains().forEach(domain -> removeFromDomain(base, domain));
+        getDomains().forEach(domain -> {
+            removeFromDomain(base, domain);
+
+        });
     }
 
     private void removeFromDomain(ApplicationBase base, Domain domain) {