experimental: changed ring condition handling