Index: tolbase/lib/toltk/tolpkg.tcl
===================================================================
--- tolbase/lib/toltk/tolpkg.tcl	(revision 2c0158dfbb4e8055e4b7771447fbc69753cfd309)
+++ tolbase/lib/toltk/tolpkg.tcl	(revision b83b8ed3d1dec9093a2ad4436d4854038f982b97)
@@ -25,8 +25,15 @@
 }
 
+proc ::TolPkg::GetLocalRoot { } {
+  return [ file normalize \
+               [ lindex [ toltcl::eval { Text TolPackage::_.localRoot } ] 0 ] ]
+}
+
+proc ::TolPkg::GetClientPath { } {
+  return [ file join [ GetLocalRoot ] "Client" ]
+}
+
 proc ::TolPkg::GetPkgDirectory { p } {
-  set localRoot [ file normalize \
-                      [ toltcl::eval { Text TolPackage::_.localRoot } ] ]
-  return [ file join $localRoot "Client" $p ]
+  return [ file join [ GetClientPath ] $p ]
 }
 
@@ -67,7 +74,5 @@
 
 proc ::TolPkg::GetPkgSyncInfo { } {
-  set localRoot [ file normalize \
-                      [ toltcl::eval { Text TolPackage::_.localRoot } ] ]
-  set oza [ file join $localRoot "Client/PackSyncInfo.oza" ]
+  set oza [ file join [ GetClientPath ] "PackSyncInfo.oza" ]
   if { ![ file exists $oza ] || ![ file readable $oza ] } {
     return {}
@@ -108,7 +113,5 @@
 
 proc ::TolPkg::GetVersSyncInfo { } {
-  set localRoot [ file normalize \
-                      [ toltcl::eval { Text TolPackage::_.localRoot } ] ]
-  set oza [ file join $localRoot "Client/VersSyncInfo.oza" ]
+  set oza [ file join [ GetClientPath ] "VersSyncInfo.oza" ]
   if { ![ file exists $oza ] || ![ file readable $oza ] } {
     return {}
@@ -138,7 +141,5 @@
 
 proc ::TolPkg::GetLocalPackages { } {
-  set localRoot [ file normalize \
-                      [ lindex [ toltcl::eval { Text TolPackage::_.localRoot } ] 0 ] ]
-  set clientRoot [ file join $localRoot Client ]
+  set clientRoot [ GetClientPath ]
   set dirs [ glob -nocomplain -tail -dir $clientRoot -types {d r} * ]
   set pkgsInfo {}
