diff --git a/api/v1alpha1/common.go b/api/v1alpha1/common.go
index 4753a523..efac1d32 100644
--- a/api/v1alpha1/common.go
+++ b/api/v1alpha1/common.go
@@ -90,7 +90,7 @@ func GetTerragruntVersion(repository *TerraformRepository, layer *TerraformLayer
 
 func GetOverrideRunnerSpec(repository *TerraformRepository, layer *TerraformLayer) OverrideRunnerSpec {
 	return OverrideRunnerSpec{
-		Tolerations:  mergeTolerations(repository.Spec.OverrideRunnerSpec.Tolerations, layer.Spec.OverrideRunnerSpec.Tolerations),
+		Tolerations:  overrideTolerations(repository.Spec.OverrideRunnerSpec.Tolerations, layer.Spec.OverrideRunnerSpec.Tolerations),
 		NodeSelector: mergeMaps(repository.Spec.OverrideRunnerSpec.NodeSelector, layer.Spec.OverrideRunnerSpec.NodeSelector),
 		Metadata: MetadataOverride{
 			Annotations: mergeMaps(repository.Spec.OverrideRunnerSpec.Metadata.Annotations, layer.Spec.OverrideRunnerSpec.Metadata.Annotations),
@@ -274,20 +274,13 @@ func mergeVolumes(a, b []corev1.Volume) []corev1.Volume {
 	return result
 }
 
-func mergeTolerations(a, b []corev1.Toleration) []corev1.Toleration {
-	result := []corev1.Toleration{}
-	tempMap := map[string]corev1.Toleration{}
+func overrideTolerations(a, b []corev1.Toleration) []corev1.Toleration {
+	result := b
 
-	for _, elt := range a {
-		tempMap[elt.Key] = elt
-	}
-	for _, elt := range b {
-		tempMap[elt.Key] = elt
+	if len(result) == 0 {
+		result = a
 	}
 
-	for _, v := range tempMap {
-		result = append(result, v)
-	}
 	return result
 }
 
diff --git a/api/v1alpha1/common_test.go b/api/v1alpha1/common_test.go
index 50486449..467ab028 100644
--- a/api/v1alpha1/common_test.go
+++ b/api/v1alpha1/common_test.go
@@ -638,7 +638,7 @@ func TestOverrideRunnerSpec(t *testing.T) {
 		expectedSpec configv1alpha1.OverrideRunnerSpec
 	}{
 		{
-			"MergeTolerations",
+			"OverrideTolerations",
 			&configv1alpha1.TerraformRepository{
 				Spec: configv1alpha1.TerraformRepositorySpec{
 					OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{
@@ -677,11 +677,6 @@ func TestOverrideRunnerSpec(t *testing.T) {
 			},
 			configv1alpha1.OverrideRunnerSpec{
 				Tolerations: []corev1.Toleration{
-					{
-						Key:    "only-exists-in-repository",
-						Value:  "true",
-						Effect: "NoSchedule",
-					},
 					{
 						Key:    "does-not-exists-in-layer",
 						Value:  "false",
@@ -767,6 +762,116 @@ func TestOverrideRunnerSpec(t *testing.T) {
 				},
 			},
 		},
+		{
+			"TolerationsWithSameKeyButDifferentValuesExistInBoth",
+			&configv1alpha1.TerraformRepository{
+				Spec: configv1alpha1.TerraformRepositorySpec{
+					OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{
+						Tolerations: []corev1.Toleration{
+							{
+								Key:    "exists-in-both",
+								Value:  "true",
+								Effect: "NoExecute",
+							},
+						},
+					},
+				},
+			},
+			&configv1alpha1.TerraformLayer{
+				Spec: configv1alpha1.TerraformLayerSpec{
+					OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{
+						Tolerations: []corev1.Toleration{
+							{
+								Key:    "exists-in-both",
+								Value:  "false",
+								Effect: "NoExecute",
+							},
+						},
+					},
+				},
+			},
+			configv1alpha1.OverrideRunnerSpec{
+				Tolerations: []corev1.Toleration{
+					{
+						Key:    "exists-in-both",
+						Value:  "false",
+						Effect: "NoExecute",
+					},
+				},
+			},
+		},
+		{
+			"TolerationsWithSameKeyButDifferentValuesOnlyInRepository",
+			&configv1alpha1.TerraformRepository{
+				Spec: configv1alpha1.TerraformRepositorySpec{
+					OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{
+						Tolerations: []corev1.Toleration{
+							{
+								Key:    "same-key",
+								Value:  "value-1",
+								Effect: "NoExecute",
+							},
+							{
+								Key:    "same-key",
+								Value:  "value-2",
+								Effect: "NoExecute",
+							},
+						},
+					},
+				},
+			},
+			&configv1alpha1.TerraformLayer{},
+			configv1alpha1.OverrideRunnerSpec{
+				Tolerations: []corev1.Toleration{
+					{
+						Key:    "same-key",
+						Value:  "value-1",
+						Effect: "NoExecute",
+					},
+					{
+						Key:    "same-key",
+						Value:  "value-2",
+						Effect: "NoExecute",
+					},
+				},
+			},
+		},
+		{
+			"TolerationsWithSameKeyButDifferentValuesOnlyInLayer",
+			&configv1alpha1.TerraformRepository{},
+			&configv1alpha1.TerraformLayer{
+				Spec: configv1alpha1.TerraformLayerSpec{
+					OverrideRunnerSpec: configv1alpha1.OverrideRunnerSpec{
+						Tolerations: []corev1.Toleration{
+							{
+								Key:    "same-key",
+								Value:  "value-1",
+								Effect: "NoExecute",
+							},
+							{
+								Key:    "same-key",
+								Value:  "value-2",
+								Effect: "NoExecute",
+							},
+						},
+					},
+				},
+			},
+			configv1alpha1.OverrideRunnerSpec{
+				Tolerations: []corev1.Toleration{
+					{
+						Key:    "same-key",
+						Value:  "value-1",
+						Effect: "NoExecute",
+					},
+					{
+						Key:    "same-key",
+						Value:  "value-2",
+						Effect: "NoExecute",
+					},
+				},
+			},
+		},
 		{
 			"ChooseImageNotSpecified",
 			&configv1alpha1.TerraformRepository{},