We provide an efficient algorithm for computing the nucleolus for an instance of a weighted cooperative matching game. This resolves a long-standing open question posed in [Faigle, Kern, Fekete, Hochstättler, Mathematical Programming, 1998].Let ε * be the optimum value of (P ), and define P (ε * ) to be the set of allocations x such that (x, ε * ) is feasible for (P ). The set P (ε * ) is known as the leastcore [39] of the given cooperative game, and the special case when ε * = 0, P (0) is the well-known core [25] of (V, ν). Intuitively, allocations in the core describe payoffs in which no coalition of players could profitably deviate from the grand coalition V . Why stop at maximizing the bottleneck excess? Consider an allocation which, subject to maximizing the smallest excess, maximizes the second smallest excess, and subject to that maximizes the third smallest excess, and so on. This process of successively optimizing the excess of the worst-off coalitions yields our primary object of interest, the nucleolus. For an allocation x ∈ R V , let θ(x) ∈ R 2 V −2 be the vector obtained by sorting the list of excess values x(S) − ν(S) for any ∅ = S ⊂ V in non-decreasing order 3 . The nucleolus, denoted η(V, ν) and defined by Schmeidler [45], is the unique allocation that lexicographically maximizes θ(x): η(V, ν) := arg lex max{θ(x) : x ∈ P (ε * )}.We refer the reader to Appendix B for an example instance of the weighted matching game with its nucleolus. We now have sufficient terminology to state our main result:Theorem 1. Given a graph G = (V, E) and weights w : E → R, the nucleolus η(V, ν) of the corresponding weighted matching game can be computed in polynomial time.