We consider the following well-known problem, which is called the edge-disjoint paths problem. Input: A graph G with n vertices and m edges, k pairs of vertices (s1, t1), (s2, t2), . . . , (sk, tk) in G. Output : Edge-disjoint paths P1, P2, . . . , Pk in G such that Pi joins si and ti for i = 1, 2, . . . , k. Robertson and Seymour's graph minor project gives rise to an O(m3 ) algorithm for this problem for any fixed k, but their proof of the correctness needs the whole Graph Minor project, spanning 23 papers and at least 500 pages proof. We give a faster algorithm and a simpler proof of the correctness for the edge-disjoint paths problem for any fixed k. Our results can be summarized as follows: