We provide a solution to the so-called SD problem, that is, the problem of simultaneous diagonalisation via congruence of a given set of m symmetric n × n matrices {A 1 , . . . , Am}, by showing that it can be reduced to a lower-dimensional problem where the question is rephrased in terms of the classical problem of simultaneous diagonalisation via similarity of a new set of matrices. We provide a concrete algorithm to determine whether or not a set of matrices is simultaneously diagonalisable by congruence. This solves a long standing problem in the complex case. The SD problem has many applications in signal separation and optimisation.