diff --git a/net/alien/src/TAlienPackage.cxx b/net/alien/src/TAlienPackage.cxx
index 306e15ba12f84e7af0d12523245e84c29569422f..0e5e0ebd5a7a38e5d022d68a9bd1077044b5780d 100644
--- a/net/alien/src/TAlienPackage.cxx
+++ b/net/alien/src/TAlienPackage.cxx
@@ -358,17 +358,24 @@ Bool_t TAlienPackage::CheckDependencies ()
    fInstallList->Add (strObj);
 
    for (Int_t j = 0; j < fInstallList->GetEntries (); j++) {
-      TObjString *strObj = (TObjString *) fInstallList->At (j);
-      TObjArray *strDepsPackgOrVer = strObj->GetString ().Tokenize ("::");
-      TObjString *strObjPackage = (TObjString *) strDepsPackgOrVer->At (0);
-      TObjString *strObjVersion = (TObjString *) strDepsPackgOrVer->At (1);
+      strObj = (TObjString *) fInstallList->At(j);
+      TString strObjPackage, strObjVersion;
+      Int_t from = 0;
+      if (strObj->GetString().Tokenize(strObjPackage, from, "::")) {
+         if (!strObj->GetString().Tokenize(strObjVersion, from, "::")) {
+            Warning("CheckDepencencies", "version string not found for j=%d (%s)", j, strObj->GetName());
+            continue;
+         }
+      } else {
+         Warning("CheckDepencencies", "package string not found for j=%d (%s)", j, strObj->GetName());
+         continue;
+      }
 
       if (GetDebugLevel () > 2)
          Info ("CheckDepencencies", "\t[%d] Name=%s Version=%s", j,
-               strObjPackage->GetString ().Data (),
-               strObjVersion->GetString ().Data ());
+               strObjPackage.Data(), strObjVersion.Data());
 
-      if (CheckDirectories(strObjPackage->GetString (), strObjVersion->GetString ()) == kFALSE)
+      if (CheckDirectories(strObjPackage, strObjVersion) == kFALSE)
          return kFALSE;
    }