diff --git a/proof/proof/inc/TProofLite.h b/proof/proof/inc/TProofLite.h
index bf5ece9a72d4070099c140425654ea3a193bb0d2..54d1f51935551460e37f1c94b0ac791e8fb62d53 100644
--- a/proof/proof/inc/TProofLite.h
+++ b/proof/proof/inc/TProofLite.h
@@ -88,7 +88,6 @@ private:
 protected:
    TProofLite() : TProof() { } // For derived classes to use
 
-   Int_t CreateSymLinks(TList *files, TList *wrks = 0);
    Int_t Init(const char *masterurl, const char *conffile,
                const char *confdir, Int_t loglevel,
                const char *alias = 0);
diff --git a/proof/proof/src/TProofLite.cxx b/proof/proof/src/TProofLite.cxx
index b4f7d76a552e1830a43b86d1e433071f4c3ccd63..4a5666580fbf026acaab5c235754236e54de3bdf 100644
--- a/proof/proof/src/TProofLite.cxx
+++ b/proof/proof/src/TProofLite.cxx
@@ -1423,44 +1423,6 @@ Long64_t TProofLite::Process(TDSet *dset, const char *selector, Option_t *option
    return rv;
 }
 
-////////////////////////////////////////////////////////////////////////////////
-/// Create in each worker sandbox symlinks to the files in the list
-/// Used to make the cache information available to workers.
-
-Int_t TProofLite::CreateSymLinks(TList *files, TList *wrks)
-{
-   Int_t rc = 0;
-   if (files) {
-      TList *wls = (wrks) ? wrks : fActiveSlaves;
-      TIter nxf(files);
-      TObjString *os = 0;
-      while ((os = (TObjString *) nxf())) {
-         // Expand target
-         TString tgt(os->GetName());
-         gSystem->ExpandPathName(tgt);
-         // Loop over active workers
-         TIter nxw(wls);
-         TSlave *wrk = 0;
-         while ((wrk = (TSlave *) nxw())) {
-            // Link name
-            TString lnk = Form("%s/%s", wrk->GetWorkDir(), gSystem->BaseName(os->GetName()));
-            gSystem->Unlink(lnk);
-            if (gSystem->Symlink(tgt, lnk) != 0) {
-               rc++;
-               Warning("CreateSymLinks", "problems creating sym link: %s", lnk.Data());
-            } else {
-               PDB(kGlobal,1)
-                  Info("CreateSymLinks", "created sym link: %s", lnk.Data());
-            }
-         }
-      }
-   } else {
-      Warning("CreateSymLinks", "files list is undefined");
-   }
-   // Done
-   return rc;
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 /// Initialize the dataset manager from directives or from defaults
 /// Return 0 on success, -1 on failure
@@ -1626,8 +1588,6 @@ Int_t TProofLite::Load(const char *macro, Bool_t notOnClient, Bool_t uniqueOnly,
             }
             gSystem->FreeDirectory(dirp);
          }
-         // Create the relevant symlinks
-         CreateSymLinks(&cachedFiles, wrks);
       }
    }
 
@@ -1649,7 +1609,7 @@ Int_t TProofLite::Load(const char *macro, Bool_t notOnClient, Bool_t uniqueOnly,
 /// Return -1 in case of error, 0 otherwise.
 
 Int_t TProofLite::CopyMacroToCache(const char *macro, Int_t headerRequired,
-                                   TSelector **selector, Int_t opt, TList *wrks)
+                                   TSelector **selector, Int_t opt, TList *)
 {
    // Relevant pointers
    TString cacheDir = fCacheDir;
@@ -1760,6 +1720,7 @@ Int_t TProofLite::CopyMacroToCache(const char *macro, Int_t headerRequired,
    dot = binname.Last('.');
    if (dot != kNPOS)
       binname.Replace(dot,1,"_");
+   TString pcmname = TString::Format("%s_ACLiC_dict_rdict.pcm", binname.Data());
    binname += ".";
 
    FileStat_t stlocal, stcache;
@@ -1771,7 +1732,8 @@ Int_t TProofLite::CopyMacroToCache(const char *macro, Int_t headerRequired,
       if (dirp) {
          const char *e = 0;
          while ((e = gSystem->GetDirEntry(dirp))) {
-            if (!strncmp(e, binname.Data(), binname.Length())) {
+            if (!strncmp(e, binname.Data(), binname.Length()) ||
+                !strncmp(e, pcmname.Data(), pcmname.Length())) {
                TString fncache = Form("%s/%s", cacheDir.Data(), e);
                Bool_t docp = kTRUE;
                if (!gSystem->GetPathInfo(fncache, stcache)) {
@@ -1810,7 +1772,8 @@ Int_t TProofLite::CopyMacroToCache(const char *macro, Int_t headerRequired,
    if (dirp) {
       const char *e = 0;
       while ((e = gSystem->GetDirEntry(dirp))) {
-         if (!strncmp(e, binname.Data(), binname.Length())) {
+         if (!strncmp(e, binname.Data(), binname.Length()) ||
+             !strncmp(e, pcmname.Data(), pcmname.Length())) {
             Bool_t docp = kTRUE;
             if (!gSystem->GetPathInfo(e, stlocal)) {
                TString fncache = Form("%s/%s", cacheDir.Data(), e);
@@ -1864,10 +1827,6 @@ Int_t TProofLite::CopyMacroToCache(const char *macro, Int_t headerRequired,
 
    cacheLock->Unlock();
 
-   // Create symlinks
-   if (opt & (kCp | kCpBin))
-      CreateSymLinks(cachedFiles, wrks);
-
    cachedFiles->SetOwner();
    delete cachedFiles;