Better client side circular dependency handling



<!---
@huboard:{"order":1016.0,"milestone_order":1016,"custom_state":""}
-->