diff --git a/lib/kadeploy3/client/client.rb b/lib/kadeploy3/client/client.rb
index 6a06c7d6118e81dae4af5b3392cb628b32a0a9d4..be11525e84e478f1c4a822339fd0daf0ac96cd66 100644
--- a/lib/kadeploy3/client/client.rb
+++ b/lib/kadeploy3/client/client.rb
@@ -831,6 +831,7 @@ class Client
     # Sort nodes from the list by server (if multiserver option is specified)
     nodes = nil
     if options[:multi_server]
+      default_arch = []
       options[:servers].each_pair do |server, inf|
         next if server.downcase == 'default'
         inf[3] = get_auth_headers_prefix(inf[0], inf[1], inf[2]) unless inf[3]
@@ -846,6 +847,7 @@ class Client
           treated += nodes
         end
         $clients << self.new(server, inf[0], inf[1], inf[2], inf[3], nodes)
+        default_arch += get_nodearch(info[0], info[1], info[2], info[3], nodes).values unless nodes.nil?
         break if options[:nodes] and treated.sort == options[:nodes].sort
       end
     else
@@ -863,6 +865,7 @@ class Client
           end
         end
       end
+      default_arch = get_nodearch(info[0], info[1], info[2], info[3], nodes).values unless nodes.nil?
       $clients << self.new(nil, info[0], info[1], info[2], info[3], nodes)
     end
     options[:server_auth_http_prefix] = options[:servers][options[:chosen_server]][3]
@@ -871,7 +874,7 @@ class Client
     error("The nodes #{(options[:nodes] - treated).join(", ")} does not belongs to any server") if options[:nodes] and treated.sort != options[:nodes].sort
 
     unless options[:env_arch] || nodes.nil?
-      default_arch = get_nodearch(info[0], info[1], info[2], info[3], nodes).values.uniq
+      default_arch.uniq!
       error("All nodes do not have a same default architecture. You must give the architecture to use with --env-arch") if default_arch.count != 1
       options[:env_arch] = default_arch.first
     end