diff --git a/lib/ansible/runner.py b/lib/ansible/runner.py index e7de296b431..c7558086d9c 100644 --- a/lib/ansible/runner.py +++ b/lib/ansible/runner.py @@ -456,8 +456,11 @@ class Runner(object): (result2, err2, executed2) = self._execute_module(conn, tmp, module, args) results2 = self._return_from_module(conn, conn.host, result2, err2, executed) (host, ok, data2, err2) = results2 - new_changed = data2.get('changed', False) - data.update(data2) + if ok: + new_changed = data2.get('changed', False) + data.update(data2) + else: + new_changed = False if old_changed or new_changed: data['changed'] = True return (host, ok, data, "%s%s"%(err,err2))