Let G = (V, E) be an undirected multigraph without loops. The maximum cycle packing problem is to find a collection Z * = {C 1 , ..., C s } of edge-disjoint cycles C i ⊂ G of maximum cardinality ν(G). In general, this problem is N P-hard. An approximation algorithm for computing ν(G) for 2-connected graphs is presented, which is based on splits of G. It essentially uses the representation of the 3-connected components of G by its SPR-tree. It is proved that for generalized series-parallel multigraphs the algorithm is optimal, i.e. it determines a maximum cycle packing Z * in linear time.