fixed another nasty looping bug, starting to think maybe my abstract domain isn't tracking badness well enough...