In the guessing secrets problem defined by Chung, Graham and Leighton [9], player B has to unveil a set of k > 1 secrets that player A has chosen from a pool of N secrets. To discover the secrets, player B is allowed to ask a series of boolean questions. For each question asked, A can adversarially choose one of the secrets but once he has made his choice he must answer truthfully. In this paper we first present a solution to the k = 2 guessing secrets problem consisting in an error correcting code equipped with a tracing algorithm that efficiently recovers the secrets. Next, we show how with a slight modification in the tracing algorithm our approach to the guessing secrets problem also provides a solution to the collusion secure fingerprinting problem.