                  for class_file in fnmatch.filter(filelist, '*.class'):
                      class_name = class_path + os.path.splitext(class_file)[0]
                      bin_file = os.path.normpath(os.path.join(path, class_file))
-@@ -1890,6 +1911,9 @@
+@@ -1890,6 +1917,9 @@
                  sys.exit(1)
  
          for entry in newfiles:

         if not reobf:
             md5lk = {CLIENT: self.md5client, SERVER: self.md5server}
         else:
@@ -1718,6 +1736,9 @@
                     class_path = ''
                 else:
                     class_path += '/'

-            dirs = ' '.join(pkglistscala)
+            f = NamedTemporaryFile(mode='wb', suffix='.txt', prefix ='scala_src_path_', delete=False) #FML: We write to a temporary file just in case the command is to long
+            for line in pkglistscala:
+                if os.sep == '\\':
+                    f.write('"%s"\n' % os.path.abspath(line).replace(os.sep, os.sep + os.sep))
+                else:
+                    f.write('"%s"\n' % os.path.abspath(line))
+            f.close()
+            dirs = '@"%s"' % f.name
             classpath = os.pathsep.join(cplk[side])
             forkcmd = self.cmdrecompscala.format(classpath=classpath, sourcepath=pathsrclk[side], outpath=pathbinlk[side], pkgs=dirs)
             try:
@@ -1317,7 +1332,15 @@
                 self.logger.error('================================')
                 self.logger.error('')
                 raise
