diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 2a1d570c7e7..f665ed76d20 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -561,12 +561,6 @@ class Play(object): if 'vars' in x: task_vars = utils.combine_vars(task_vars, x['vars']) - if 'when' in x: - if isinstance(x['when'], (basestring, bool)): - included_additional_conditions.append(x['when']) - elif isinstance(x['when'], list): - included_additional_conditions.extend(x['when']) - new_role = None if 'role_name' in x: new_role = x['role_name'] diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index 1148e7454c3..793e29ec5fb 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -300,6 +300,7 @@ class Task(object): self.tags.extend(import_tags) if additional_conditions: - new_conditions = additional_conditions - new_conditions.append(self.when) + new_conditions = additional_conditions[:] + if self.when: + new_conditions.append(self.when) self.when = new_conditions