          classpath = [os.path.join('..', p) for p in classpath]
          classpath = os.pathsep.join(classpath)
          os.chdir(self.dirjars)
-@@ -1703,7 +1721,7 @@
+@@ -1703,7 +1727,7 @@
          self.runcmd(forkcmd)
          return True
  

+            os.unlink(f.name)
+        f = NamedTemporaryFile(mode='wb', suffix='.txt', prefix ='java_src_path_', delete=False) #FML: We write to a temporary file just in case the command is to long
+        for line in pkglist:
+            f.write('"%s"\n' % os.path.abspath(line))
+        f.close()
+        dirs = '@"%s"' % f.name
         classpath = os.pathsep.join(cplk[side])
         forkcmd = self.cmdrecomp.format(classpath=classpath, sourcepath=pathsrclk[side], outpath=pathbinlk[side],
                                         pkgs=dirs)
@@ -1336,9 +1353,10 @@
             self.logger.error('==================')
             self.logger.error('')
             raise

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