Index: tol/lang/language.cpp
===================================================================
--- tol/lang/language.cpp	(revision f4cc2f5a1214cff2791751f03058408004ab9c17)
+++ tol/lang/language.cpp	(revision 6306f69ba634039a23f8bbb5eb9154af706fb576)
@@ -1337,16 +1337,24 @@
 
 //--------------------------------------------------------------------
-static void PkgStartActions(const BText& package, const BText path)
-//--------------------------------------------------------------------
-{
-  BText startActionsExpr = package+"::StartActions(0)";
-  bool oldRunningUseModule = BOis::SetRunningUseModule(false);
-  BText oldDir = BDir::GetCurrent();
-  BDir::ChangeCurrent( GetFilePath(path) );
-  BSyntaxObject* startActions = GraReal()->EvaluateExpr(startActionsExpr);
-  BDir::ChangeCurrent(oldDir);
-  BOis::SetRunningUseModule(oldRunningUseModule);
-//Std(BText("\nTRACE startActionsExpr =")+startActionsExpr+" "+((startActions)?"OK":"FAIL")+"\n");
-  DESTROY(startActions);
+static void PkgStartActions(
+  BSyntaxObject* pkg,
+  const BText& package, 
+  const BText path)
+//--------------------------------------------------------------------
+{
+  BNameBlock& nb = NameBlock(pkg);
+  if(!nb.startedPackage)
+  {
+    nb.startedPackage = true;
+    BText startActionsExpr = package+"::StartActions(0)";
+    bool oldRunningUseModule = BOis::SetRunningUseModule(false);
+    BText oldDir = BDir::GetCurrent();
+    BDir::ChangeCurrent( GetFilePath(path) );
+    BSyntaxObject* startActions = GraReal()->EvaluateExpr(startActionsExpr);
+    BDir::ChangeCurrent(oldDir);
+    BOis::SetRunningUseModule(oldRunningUseModule);
+  //Std(BText("\nTRACE startActionsExpr =")+startActionsExpr+" "+((startActions)?"OK":"FAIL")+"\n");
+    DESTROY(startActions);
+  }
 }
 
@@ -1387,10 +1395,5 @@
   bool ok = pkg!=NULL;
   if(ok) { 
-    BNameBlock& nb = NameBlock(pkg);
-    if(!nb.startedPackage)
-    {
-      PkgStartActions(package, path);
-      nb.startedPackage = true;
-    }
+    PkgStartActions(pkg, package, path);
     return(pkg); 
   }
@@ -1436,5 +1439,5 @@
           required_ = Cons(pkg, required_);
           BNameBlock::AddGlobalRequiredPackage(package);
-          PkgStartActions(package, path);
+          PkgStartActions(pkg, package, path);
         }
       }      
