diff --git a/lib/ansible/runner/action_plugins/assemble.py b/lib/ansible/runner/action_plugins/assemble.py
index 468dee89ff..ad6caf3c6f 100644
--- a/lib/ansible/runner/action_plugins/assemble.py
+++ b/lib/ansible/runner/action_plugins/assemble.py
@@ -22,6 +22,7 @@ import pipes
 import shutil
 import tempfile
 from ansible import utils
+from ansible.runner.return_data import ReturnData
 
 class ActionModule(object):
 
@@ -70,6 +71,7 @@ class ActionModule(object):
         remote_md5 = self.runner._remote_md5(conn, tmp, dest)
 
         if pathmd5 != remote_md5:
+            resultant = file(path).read()
             if self.runner.diff:
                 dest_result = self.runner._execute_module(conn, tmp, 'slurp', "path=%s" % dest, inject=inject, persist_files=True)
                 if 'content' in dest_result.result:
@@ -88,10 +90,11 @@ class ActionModule(object):
             module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(src)))
 
             if self.runner.noop_on_check(inject):
-                return ReturnData(conn=conn, comm_ok=True, result=dict(changed=True), diff=dict(before_header=dest, after_header=src, before=dest_contents, after=resultant))
+                return ReturnData(conn=conn, comm_ok=True, result=dict(changed=True), diff=dict(before_header=dest, after_header=src, after=resultant))
             else:
-                res = self.runner._execute_module(conn, tmp, 'copy', module_args, inject=inject, complex_args=complex_args)
-                res.diff = dict(before=dest_contents, after=resultant)
+                res = self.runner._execute_module(conn, tmp, 'copy', module_args, inject=inject)
+                res.diff = dict(after=resultant)
                 return res
         else:
-            return self.runner._execute_module(conn, tmp, 'file', module_args, inject=inject, complex_args=complex_args)
+            module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(src)))
+            return self.runner._execute_module(conn, tmp, 'file', module_args, inject=inject)