I currently use the following to get windows inserted in the order that I want and it works well. 

        , manageHook=insertPosition Below Newer <+>
              manageHook def <+> manageDocks 

My issue  is that when I close a window I always get the wrong window focused as it does not take into account the order in which it was created.

Is there any way that this can be overcome?

Thanks
Joe