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

+            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)
@@ -1338,7 +1355,7 @@
             raise
 
     def startserver(self, mainclass, extraargs):
-        classpath = [self.binserver] + self.cpathserver

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