We describe a modification of Khovanov homology [13], in the spirit of Bar-Natan [2], which makes the theory properly functorial with respect to link cobordisms. This requires introducing "disorientations" in the category of smoothings and abstract cobordisms between them used in Bar-Natan's definition. Disorientations have "seams" separating oppositely oriented regions, coming with a preferred normal direction. The seams satisfy certain relations (just as the underlying cobordisms satisfy relations such as the neck cutting relation).We construct explicit chain maps for the various Reidemeister moves, then prove that the compositions of chain maps associated to each side of each of Carter, Rieger and Saito's movie moves [8; 7] always agree. These calculations are greatly simplified by following arguments due to Bar-Natan and Khovanov, which ensure that the two compositions must agree, up to a sign. We set up this argument in our context by proving a result about duality in Khovanov homology, generalising previous results about mirror images of knots to a "local" result about tangles. Along the way, we reproduce Jacobsson's sign table [10] for the original "unoriented theory", with a few disagreements.