Index: toltcl/generic/toltcl.c
===================================================================
--- toltcl/generic/toltcl.c	(revision 9d2a70c59399f4f255073a4cb34e9c5815ae2d34)
+++ toltcl/generic/toltcl.c	(revision bfc7e458c9048ced4b5bfbd4d2df206afbc4dae1)
@@ -345,17 +345,44 @@
      Tcl_Obj *CONST objv[];  /* Argument objects */
 {
-  int loadIni;
-  int status;
-
-  if ( objc != 2 ) {
+  int loadInitProject = 1;
+  int loadDefaultPackages = 1;
+  int i;
+
+  if ( !( objc % 2 ) ) 
+    {
     Tcl_AppendResult(interp, "wrong # args: should be \"",
-                     Tcl_GetString(objv[0]), " 0|1\"", NULL);
-    return TCL_ERROR;
-  }
-  
-  if ( (status = Tcl_GetIntFromObj( interp, objv[1], &loadIni )) == TCL_OK ) {
-    LoadInitLibrary( loadIni );
-  }
-  return status;
+                     Tcl_GetString(objv[0]), " ?-initproject 0|1? ?-defaultpackages 0|1?\"", NULL);
+    return TCL_ERROR;    
+    }
+  for ( i = 1; i < objc; i += 2 )
+    {
+    if ( !strcmp( Tcl_GetString( objv[i] ), "-initproject" ) )
+      {
+      if ( Tcl_GetIntFromObj( interp, objv[i+1], &loadInitProject ) != TCL_OK ) 
+        {
+        Tcl_AppendResult( interp, "wrong value for option \"-initproject\"",
+                          NULL );
+        return TCL_ERROR;
+        }
+      }
+    else if ( !strcmp( Tcl_GetString( objv[i] ), "-defaultpackages" ) )
+      {
+      if ( Tcl_GetIntFromObj( interp, objv[i+1], &loadDefaultPackages ) != TCL_OK ) 
+        {
+        Tcl_AppendResult( interp, "wrong value for option \"-defaultpackages\"",
+                          NULL );
+        return TCL_ERROR;
+        }
+      }
+    else
+      {
+      Tcl_AppendResult( interp, "wrong option \"", 
+                        Tcl_GetString( objv[i] ),
+                        "\", must be: -initproject or -defaultpackages", NULL );
+      return TCL_ERROR;
+      }
+    }
+  LoadInitLibrary( loadInitProject, loadDefaultPackages );
+  return TCL_OK;
 }
 
@@ -1538,5 +1565,5 @@
     Tcl_AppendStringsToObj( obj_result, "wrong # args: should be '",
                            Tcl_GetString(objv[0]),
-                           " serieref ?statname ?args??'", NULL );
+                           " serieref ?statname ?args? ?'", NULL );
     tcl_result = TCL_ERROR;
   } else
