diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py
index b4285923ccd9d6b4f6ed7612f82335f352455298..ca6e6f4f97dced074b1f663541b205b4e82c35cd 100644
--- a/src/Solver/ASolver.py
+++ b/src/Solver/ASolver.py
@@ -189,9 +189,18 @@ class AbstractSolver(object):
 
         logger.debug(f"! {cmd}")
 
-        cmd = cmd.split()
-        exe = cmd[0]
-        args = cmd[1:]
+        if cmd[0] == "\"":
+            # Command line executable path is between " char
+            cmd = cmd.split("\"")
+            exe = cmd[1]
+            args = "\"".join(cmd[3:]).split(" ")
+        else:
+            # We suppose the command line executable path as no space char
+            cmd = cmd.replace("\ ", "&_&").split(" ")
+            exe = cmd[0].replace("&_&", "\ ")
+            args = cmd[1:]
+
+        logger.info(f"! {exe} {args}")
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"
@@ -215,11 +224,20 @@ class AbstractSolver(object):
         cmd = cmd.replace("@input", self.input_param())
         cmd = cmd.replace("@dir", self._process.workingDirectory())
 
-        logger.debug(f"! {cmd}")
+        logger.info(f"! {cmd}")
 
-        cmd = cmd.split()
-        exe = cmd[0]
-        args = cmd[1:]
+        if cmd[0] == "\"":
+            # Command line executable path is between " char
+            cmd = cmd.split("\"")
+            exe = cmd[1]
+            args = "\"".join(cmd[3:]).split(" ")
+        else:
+            # We suppose the command line executable path as no space char
+            cmd = cmd.replace("\ ", "&_&").split(" ")
+            exe = cmd[0].replace("&_&", "\ ")
+            args = cmd[1:]
+
+        logger.info(f"! {exe} {args}")
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"
@@ -246,9 +264,16 @@ class AbstractSolver(object):
 
         logger.debug(f"! {cmd}")
 
-        cmd = cmd.split()
-        exe = cmd[0]
-        args = cmd[1:]
+        if cmd[0] == "\"":
+            # Command line executable path is between " char
+            cmd = cmd.split("\"")
+            exe = cmd[1]
+            args = "\"".join(cmd[3:]).split(" ")
+        else:
+            # We suppose the command line executable path as no space char
+            cmd = cmd.replace("\ ", "&_&").split(" ")
+            exe = cmd[0].replace("&_&", "\ ")
+            args = cmd[1:]
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"
diff --git a/src/config.py b/src/config.py
index 16ec6b1263ce148ccdbf33872781f259063070ad..89563ecbe6ec255438a68513a681d97293b2d8cc 100644
--- a/src/config.py
+++ b/src/config.py
@@ -254,7 +254,7 @@ class Config(SQL):
         ctor = solver_type_list["mage8"]
         new = ctor("default-mage")
         new._description = "Default PAMHYR mage 8 version"
-        new._cmd_solver = f"""@install_dir/mage/mage{"" if posix else ".exe"} -fp=1 @input"""
+        new._cmd_solver = f""""@install_dir/mage/mage{"" if posix else ".exe"}" -fp=1 @input"""
         self._solvers.append(new)
 
         # Meshing tool