I am not quite happy of what is going on here.... elevatePrivileges looks like a public method, but it raises an exception... all public methos should raise CompatErrors and not internal exceptions.

maybe we can make this method private... it should be private as it not portable