Index: tol/stdlib/TolPackage/client.tol
===================================================================
--- tol/stdlib/TolPackage/client.tol	(revision 77a7024e9f2cc6c3b6fb6865131a318e6471897a)
+++ tol/stdlib/TolPackage/client.tol	(revision 37c9aa7ca1f3a4d2143a043977684ebea4cee07d)
@@ -69,4 +69,11 @@
 
   //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||//
+  Real LocalClean(Text package)
+  //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||//
+  {
+    Real UninstallPackage( package )
+  };
+  
+  //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||//
   Text LocalLastCompatible(Text package)
   //||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||//
@@ -137,10 +144,10 @@
     // Se trata el hecho de que pueda haberse indicado la ruta del archivo
     Text pattern = Replace(GetFileName(package), ".zip", "");
-    Text parts = Tokenizer(pattern, ".")[3];
-    Set parts := parts << For(1, 3-Card(parts), Text (Real i) { "*" });
+    Set parts = Tokenizer(pattern, ".");
+    Set Append( parts, For( Card(parts) + 1, 3, Text (Real i) { "*" } ) );
     Text txtPattern = parts[1]<<"."<<parts[2]<<"."<<parts[3];
     Set dir = GetDir(_.localRoot)[2];
     Set sel = EvalSet(GetDir(_.localRoot)[2], Real (Text subdir) {
-      If(TextMatch(sub ,txtPattern), OSDirRemove(_.localRoot<<subdir), 0)
+      If(TextMatch(subdir ,txtPattern), OSDirRemove(_.localRoot<<subdir), 0)
     });
     If(Card(sel), SetSum(sel), 0)
