The AUTOLOAD function in Newt.pm looks at strerror(errno) to see whether the constant() function (in Newt.xs) has returned EINVAL. strerror(errno) is returned in the locale's language, so won't always match /Invalid/. constant() should never fail with EINVAL anyway, so just ignore this case. --- Newt-1.08/Newt.pm.lang 2003-07-31 12:01:52.000000000 +0100 +++ Newt-1.08/Newt.pm 2003-07-31 12:02:26.000000000 +0100 @@ -220,13 +220,8 @@ croak "& not defined" if $constname eq 'constant'; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { - if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; - } - else { - croak "Your vendor has not defined Newt macro $constname"; - } } *$AUTOLOAD = sub { $val }; goto &$AUTOLOAD;