drastically changed updategeom() handling, see comment in updategeom() for details