Despite having been widely studied over the last decade, peer-to-peer (P2P) systems remain a challenging field of research. They are designed to scale, but scalability comes at a price: they must deal with unpredictability of nodes joining and leaving the systems (churn), failures, heterogeneity in processing power and communication speeds, etc. These problems are particularly difficult to solve when P2P systems have to maintain a given structure, as in the case of tree-based overlays. This thesis tackles a set of well-focused research problems in the context of tree-based P2P overlays: performance and dependability improvements.