The "Illegal circular Use" message ususally means a object is trying to use itself, and declares it.
An object can usually use itself anyway so this will only potentially overload the compiler.
Error: "name previously referenced in this scope" is a similar sort of error, and usually means that in thescope wether it is
the scope of a function or the global scope of a form a variable is being used in a different way, ie with a different property or object method.
If these errors crop up after a design change or refresh there can be an easy way to solve them.
These error messages can arise if the script library has got corrupted.
To solve this copy the script library can stick it in a spare blank database.
Delete the script library from the problme database.
Recreate the script library from the template.
If you do not have a template with the script library, then copy each function back into a new script library with the same name, until you have recreated the library.