The problem with the first filter postback after a callback has occured is that the tree should be changed completely because its root changes but nothing happens.
I have stepped through the method code and everything is as it should be.
When the method is called from e filter postback the treeview xml(mTreeView.TreeNodews.XMLDoc.OuterXML) before the new xml is loaded contains also the xml created from POD.
The new xml which is completely different from the previous one is loaded in the tree through the LoadXML and I checked that mTreeView.TreeNodews.XMLDoc.OuterXML is changed but in the client the tree remains the same as before the postback.The xml string in the __dnnVariable hidden field in the client doesn't change, it doesn't reflect the server side changes.
If i change again a filter property and do postback everything works fine.
I'll try to put the app somewhere and the source code also.
Thanks for your response.