<p><b>Abstract</b>—We present an adaptive deadlock-free routing algorithm which decomposes a given network into two virtual interconnection networks, <it>VIN</it><sub>1</sub> and <it>VIN</it><sub>2</sub>. <it>VIN</it><sub>1</sub> supports deterministic deadlock-free routing, and <it>VIN</it><sub>2</sub> supports fully-adaptive routing. Whenever a channel in <it>VIN</it><sub>1</sub> or <it>VIN</it><sub>2</sub> is available, it can be used to route a message.</p><p>Each node is identified to be in one of three states: safe, unsafe, and faulty. The unsafe state is used for deadlock-free routing, and an unsafe node can still send and receive messages. When nodes become faulty/unsafe, some channels in <it>VIN</it><sub>2</sub> around the faulty/unsafe nodes are used as the detours of those channels in <it>VIN</it><sub>1</sub> passing through the faulty/unsafe nodes, i.e., the adaptability in <it>VIN</it><sub>2</sub> is transformed to support fault-tolerant deadlock-free routing. Using information on the state of each node's neighbors, we have developed an adaptive fault-tolerant deadlock-free routing scheme for <it>n</it>-dimensional meshes and hypercubes with only two virtual channels per physical link.</p><p>In an <it>n</it>-dimensional hypercube, any pattern of faulty nodes can be tolerated as long as the number of faulty nodes is no more than <tmath>$\lceil\, n/2 \,\rceil$.</tmath> The maximum number of faulty nodes that can be tolerated is 2<super><it>n</it>−1</super>, which occurs when all faulty nodes can be encompassed in an (<it>n</it>− 1)-cube. In an <it>n</it>-dimensional mesh, we use a more general fault model, called a <it>disconnected rectangular block</it>. Any arbitrary pattern of faulty nodes can be modeled as a rectangular block after finding both unsafe and disabled nodes (which are then treated as faulty nodes). This concept can also be applied to <it>k</it>-ary <it>n</it>-cubes with four virtual channels, two in <it>VIN</it><sub>1</sub> and the other two in <it>VIN</it><sub>2</sub>. Finally, we present simulation results for both hypercubes and 2-dimensional meshes by using various workloads and fault patterns.</p>