As machines that reprogramme eukaryotic cells to suit their own purposes, viruses present a difficult problem for multicellular hosts, and indeed, have become one of the central pre-occupations of the immune system. Unable to permanently outpace individual viruses in an evolutionary footrace, higher eukaryotes have evolved broadly active mechanisms with which to sense viruses and suppress their proliferation. These mechanisms have recently been elucidated by a combination of forward and reverse genetic methods. Some of these mechanisms are clearly ancient, whereas others are relatively new. All are remarkably adept at discriminating self from non-self, and allow the host to cope with what might seem an impossible predicament.