It's been a busy week. In addition to releasing new documentation (http://networkradius.com/doc/), we've been adding more functionality to the server core. As of now, pretty much all of "unlang" is syntax checked when the server starts. This means that errors in conditional checks will be caught: if ("%{no-such-module:foo}" == "bar") { will now cause the server to print a descriptive error, and fail to start. The same applies for update statements: update reply { Filter-Id := "%{no-such-module:foo}" } And switch statements: switch "%{no-such-module:foo}" { and case statements: case "%{no-such-module:foo}" As a side note, "case" statements now support dynamic expansions, which they didn't before. Both "switch" and "case" statements support attribute references: switch &User-Name { case &Filter-Id { ... Will match if User-Name == Filter-Id. This capability gives a bit more flexibility in the use of "switch" and "case". These are small changes. But they should have a large impact on usability. When there's a typo in the configuration, the server will produce a MUCH better error message than it did for version 3.0.2. Alan DeKok.