Index: tol/stdlib/general/TolPackage/client.tol
===================================================================
--- tol/stdlib/general/TolPackage/client.tol	(revision 01e6165954cb3499ba3a9091580daff4d8f7d44d)
+++ tol/stdlib/general/TolPackage/client.tol	(revision fa037e6123be2a81c285a1a708f522e45a556051)
@@ -1022,13 +1022,16 @@
 };
 
-////////////////////////////////////////////////////////////////////////////////
-  Text CppTools.Path(NameBlock package)
-////////////////////////////////////////////////////////////////////////////////
-{
-  Text packageName = package::_.autodoc.name;
-  Text dllPath.rel = GetAbsolutePath("CppTools/"+ GetHardSoftPlattform(0));
-  Text dllPath.deb = dllPath.rel+"_dbg";
-  Text dllFile.rel = dllPath.rel+"/"+packageName+"."+GetSharedLibExt(0);
-  Text dllFile.deb = dllPath.deb+"/"+packageName+"."+GetSharedLibExt(0);
+
+////////////////////////////////////////////////////////////////////////////////
+  Text CppTools.CalcPath(Text packageFullName)
+////////////////////////////////////////////////////////////////////////////////
+{
+  Text packageName = Tokenizer(packageFullName,".")[1];
+  Text dllRoot.rel = GetAbsolutePath(
+     _.localRoot+packageFullName+
+     "/CppTools/"+ GetHardSoftPlattform(0));
+  Text dllRoot.deb = dllRoot.rel+"_dbg";
+  Text dllFile.rel = dllRoot.rel+"/"+packageName+"."+GetSharedLibExt(0);
+  Text dllFile.deb = dllRoot.deb+"/"+packageName+"."+GetSharedLibExt(0);
   If(!TextEndAt(Version,"{DEBUG}"),dllFile.rel,
   {
@@ -1043,4 +1046,15 @@
 
 ////////////////////////////////////////////////////////////////////////////////
+  Text CppTools.Path(NameBlock pkg)
+////////////////////////////////////////////////////////////////////////////////
+{
+  Text packageFullName = 
+    pkg::_.autodoc.name+"."<<
+    pkg::_.autodoc.version.high+"."<<
+    pkg::_.autodoc.version.low;
+  CppTools.CalcPath(packageFullName)
+};
+
+////////////////////////////////////////////////////////////////////////////////
   Real CppTools.Check(NameBlock package, Text dllFile, Text chechMethod)
 ////////////////////////////////////////////////////////////////////////////////
@@ -1051,7 +1065,29 @@
           " -> "<<If(ok,"OK","FAIL"),If(ok,"S","E"));
   ok
+};
+
+////////////////////////////////////////////////////////////////////////////////
+  Real CppTools.HasDll(Text packageFullName)
+////////////////////////////////////////////////////////////////////////////////
+{
+  Text dllFile = CppTools.CalcPath(packageFullName);
+  OSFilExist(dllFile)
+};
+
+////////////////////////////////////////////////////////////////////////////////
+  Real CppTools.HasLockedDll(Text packageFullName)
+////////////////////////////////////////////////////////////////////////////////
+{
+  Text dllFile = CppTools.CalcPath(packageFullName);
+  If(!OSFilExist(dllFile), False,
+  {
+    Real open = FOpen(dllFile,"r+b",True,False);
+    If(open, FClose(open));
+    Not(open)
+  })
 }
 
 
+
 ]];
 
