Better client side circular dependency handling



<!---
@huboard:{"order":505.0,"milestone_order":1009,"custom_state":""}
-->