diff --git a/delete-broken-stacks-pipeline.groovy b/delete-broken-stacks-pipeline.groovy
index df938ed..25f2e12 100644
--- a/delete-broken-stacks-pipeline.groovy
+++ b/delete-broken-stacks-pipeline.groovy
@@ -29,19 +29,22 @@
             openstack.setupOpenstackVirtualenv(openstackEnv, openstackVersion)
         }
 
-        stage('Connect to OpenStack cloud') {
-            openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, OPENSTACK_API_PROJECT)
-            openstack.getKeystoneToken(openstackCloud, openstackEnv)
-        }
 
         stage('Delete broken Heat stacks') {
-            // get failed stacks
-            def brokenStacks = []
-            brokenStacks.addAll(openstack.getStacksWithStatus(openstackCloud, "CREATE_FAILED", openstackEnv))
-            brokenStacks.addAll(openstack.getStacksWithStatus(openstackCloud, "DELETE_FAILED", openstackEnv))
-            for(int i=0;i<brokenStacks.size();i++){
-                common.infoMsg("Deleting Heat stack " + brokenStacks[i])
-                openstack.deleteHeatStack(openstackCloud, brokenStacks[i], openstackEnv)
+            def tenants = OPENSTACK_API_PROJECT.tokenize(",").collect{it.trim()}
+            for(tenant in tenants){
+                 common.infoMsg("Cleaning broken heat stacks in tenant ${tenant}")
+                 // connect to openstack
+                 openstackCloud = openstack.createOpenstackEnv(openstackEnv, OPENSTACK_API_URL, OPENSTACK_API_CREDENTIALS, tenant)
+                 openstack.getKeystoneToken(openstackCloud, openstackEnv)
+                 // get failed stacks
+                 def brokenStacks = []
+                 brokenStacks.addAll(openstack.getStacksWithStatus(openstackCloud, "CREATE_FAILED", openstackEnv))
+                 brokenStacks.addAll(openstack.getStacksWithStatus(openstackCloud, "DELETE_FAILED", openstackEnv))
+                 for(int i=0;i<brokenStacks.size();i++){
+                     common.infoMsg("Deleting Heat stack " + brokenStacks[i])
+                     openstack.deleteHeatStack(openstackCloud, brokenStacks[i], openstackEnv)
+                 }
             }
         }
 
