If the bug is so subtle that it takes more than three day to find out, then I usually change the design, because the main point of delivering software is not being called three years later to debug it, so the easier the interaction between components, the better.