Given a polyhedral terrain T with n vertices, the two-watchtower problem for T asks to find two vertical segments, called watchtowers, of smallest common height, whose bottom endpoints (bases) lie on T , and whose top endpoints guard T , in the sense that each point on T is visible from at least one of them. There are three versions of the problem, discrete, semi-discrete, and continuous, depending on whether two, one, or none of the two bases are restricted to be among the vertices of T , respectively.In this paper we present the following results for the two-watchtower problem in R 2 and R 3 : (1) We show that the discrete two-watchtowers problem in R 2 can be solved in O(n 2 log 4 n) time, significantly improving previous solutions. The algorithm works, without increasing its asymptotic running time, for the semi-continuous version, where one of the towers is allowed to be placed anywhere on T . (2) We show that the continuous two-watchtower problem in R 2 can be solved in O(n 3 α(n) log 3 n) time, again significantly improving previous results. (3) Still in R 2 , we show that the continuous version of the problem of guarding a finite set P ⊂ T of m points by two watchtowers of smallest common height can be solved in O(mn log 4 n) time. (4) We show that the discrete version of the two-watchtower problem in R 3 can be solved in O(n 11/3 polylog(n)) time; this is the first nontrivial result for this problem in R 3 .