diff --git a/src/execo/action.py b/src/execo/action.py
index 3ac684f3debadc5364fb2b22c7a4564063619ee6..1a17db26bd645e7e9cf1bcc1eebb2fa87e6f8372 100644
--- a/src/execo/action.py
+++ b/src/execo/action.py
@@ -997,9 +997,7 @@ class Put(Remote):
             processlh = ActionNotificationProcessLH(self, len(self.hosts))
             for (index, host) in enumerate(self.hosts):
                 real_command = list(get_scp_command(host.user, host.keyfile, host.port, self.connection_params)) + [ remote_substitute(local_file, self.hosts, index, self._caller_context) for local_file in self.local_files ] + ["%s:%s" % (get_rewritten_host_address(host.address, self.connection_params), remote_substitute(self.remote_location, self.hosts, index, self._caller_context)),]
-                real_command = ' '.join(real_command)
                 p = Process(real_command)
-                p.shell = True
                 p.lifecycle_handlers.append(processlh)
                 p.host = host
                 self.processes.append(p)
@@ -1061,9 +1059,7 @@ class Get(Remote):
                 for path in self.remote_files:
                     remote_specs += ("%s:%s" % (get_rewritten_host_address(host.address, self.connection_params), remote_substitute(path, self.hosts, index, self._caller_context)),)
                 real_command = get_scp_command(host.user, host.keyfile, host.port, self.connection_params) + remote_specs + (remote_substitute(self.local_location, self.hosts, index, self._caller_context),)
-                real_command = ' '.join(real_command)
                 p = Process(real_command)
-                p.shell = True
                 p.lifecycle_handlers.append(processlh)
                 p.host = host
                 self.processes.append(p)