Abstract This paper presents an adaptive routeing algorithm that avoids deadlocks and starvation. It is a general store-and-forward packet router that has been developed to be used as part of a distributed runtime system for Concurrent Clean, an experimental, lazy, higher-order parallel functional programming language based on term graph rewriting. The routeing algorithm is based on the one used by the communication processor of the Decentralised Object Oriented Machine (DOOM) architecture, which uses a class climbing algorithm to avoid deadlocks. It has been altered in such a way that it can be used for machines that do not have dedicated routeing processors. We focus on issues related to an efficient implementation of this router for the Inmos T800 transputer called the Class Transputer Router (CTR). The changes made to the original algorithm will be presented and their correctness with respect to avoidance of deadlock and starvation will be shown. Performance figures clearly indicate that the CTR is significantly faster - and more reliable - than the communication primitives of the Helios operating system. Keywords: routeing, class climbing, deadlock, starvation, performance measurement.