diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/K8sManager.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/K8sManager.kt
index 66bfb2572bfcb5cb53d579a8af1c94c2b39bb532..1da763a35019816ebc8bdfaf3cb723798c57e3a4 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/K8sManager.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/K8sManager.kt
@@ -27,22 +27,24 @@ class K8sManager(private val client: NamespacedKubernetesClient) {
      * Removes different k8s resources using the client.
      * @throws IllegalArgumentException if KubernetesResource not supported.
      */
-    fun remove(resource: HasMetadata) {
+    fun remove(resource: HasMetadata,  blockUntilDeleted: Boolean = true) {
         client.resource(resource).delete()
-        when (resource) {
-            is Deployment -> {
-                ResourceByLabelHandler(client = client)
-                    .blockUntilPodsDeleted(
-                        matchLabels = resource.spec.selector.matchLabels
-                    )
-                logger.info { "Deployment '${resource.metadata.name}' deleted." }
-            }
-            is StatefulSet -> {
-                ResourceByLabelHandler(client = client)
-                    .blockUntilPodsDeleted(
-                        matchLabels = resource.spec.selector.matchLabels
-                    )
-                logger.info { "StatefulSet '$resource.metadata.name' deleted." }
+        if(blockUntilDeleted) {
+            when (resource) {
+                is Deployment -> {
+                    ResourceByLabelHandler(client = client)
+                        .blockUntilPodsDeleted(
+                            matchLabels = resource.spec.selector.matchLabels
+                        )
+                    logger.info { "Deployment '${resource.metadata.name}' deleted." }
+                }
+                is StatefulSet -> {
+                    ResourceByLabelHandler(client = client)
+                        .blockUntilPodsDeleted(
+                            matchLabels = resource.spec.selector.matchLabels
+                        )
+                    logger.info { "StatefulSet '$resource.metadata.name' deleted." }
+                }
             }
         }
     }
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/KubernetesBenchmarkDeployment.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/KubernetesBenchmarkDeployment.kt
index be567ccd8ec969a4964886e20f141fa4fad17b88..28ac651a043134d061123956cea0cfc6d9535ce6 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/KubernetesBenchmarkDeployment.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/KubernetesBenchmarkDeployment.kt
@@ -2,6 +2,8 @@ package rocks.theodolite.kubernetes
 
 import io.fabric8.kubernetes.api.model.HasMetadata
 import io.fabric8.kubernetes.api.model.KubernetesResource
+import io.fabric8.kubernetes.api.model.apps.Deployment
+import io.fabric8.kubernetes.api.model.apps.StatefulSet
 import io.fabric8.kubernetes.client.NamespacedKubernetesClient
 import io.quarkus.runtime.annotations.RegisterForReflection
 import mu.KotlinLogging
@@ -72,14 +74,25 @@ class KubernetesBenchmarkDeployment(
      *  - Remove the [KubernetesResource]s.
      */
     override fun teardown() {
-        loadGenResources.forEach { kubernetesManager.remove(it) }
+        val podCleaner = ResourceByLabelHandler(client)
+        loadGenResources.forEach { kubernetesManager.remove(it, false) }
         loadGenAfterActions.forEach { it.exec(client = client) }
-        appResources.forEach { kubernetesManager.remove(it) }
+        appResources.forEach { kubernetesManager.remove(it,false) }
         sutAfterActions.forEach { it.exec(client = client) }
         if (this.topics.isNotEmpty()) {
             kafkaController.removeTopics(this.topics.map { topic -> topic.name })
         }
-        ResourceByLabelHandler(client).removePods(
+
+        listOf(loadGenResources, appResources)
+            .forEach {
+                if (it is Deployment) {
+                    podCleaner.blockUntilPodsDeleted(it.spec.selector.matchLabels)
+                } else if (it is StatefulSet) {
+                    podCleaner.blockUntilPodsDeleted(it.spec.selector.matchLabels)
+                }
+            }
+
+        podCleaner.removePods(
             labelName = LAG_EXPORTER_POD_LABEL_NAME,
             labelValue = LAG_EXPORTER_POD_LABEL_VALUE
         )