Abstract. A software project often contains a large amount of "homologous code", i.e., similar code distributed in different versions or "species" sharing common ancestry. Homologous code fragments are prone to incur additional maintenance efforts since changes of their common characters must be replicated on each code fragment to keep the system consistent or up to date. We propose an automated method for detecting and tracking homologous code in genealogy of evolving software using finegrained tree differencing on source code. Locating homologous code and tracking its course of change would help software developers/maintainers to better understand the source code and to detect/prevent inconsistent modifications that may lead to latent errors. To show the capability of the method, the results of experiments on several large-scale software are reported including BIND9 DNS servers, a couple of Java software systems jEdit and Ant, and Linux device drivers.