A convergecast is a process in which all the sensor nodes sense data and fuse them to forward to a base station. A correct data gathering requires that there is no data loss or delivery of redundant data. Nodes can form a spanning tree rooted at the sink to perform the convergecast. Leaves of the tree can sense and forward data independently. But for any internal node data can be forwarded to its parent only after receiving data from all its children. It has been observed that a Breadth-First-Search (BFS) tree is a better choice for convergecast under low system load because the depth of any node from the root is always minimum; whereas under higher system load condition a Depth-First-Search (DFS) tree may be a better option as the degree of any node in a DFS tree is lower than that in a BFS tree. Hence per node load is lower in case of a DFS tree than that of a BFS tree. So to meet the requirement of load based adaptation, a dynamic tree switching algorithm has been proposed in this paper. The convergecast application remains transparent of the switching assuring the availability of the system at any instance of time. Also each convergecast message is assured to be delivered correctly to the base station without any loss or redundancy. © 2011 Springer-Verlag.