                 vessels[destination].contents = CGFloat(destinationFinalContents)
                 vesselViews[source].contents = vessels[source].contents
                 vesselViews[destination].contents = vessels[destination].contents
-
-                pouring = false
-                if let tim = pourTimer {
-                    tim.invalidate()
-                    pourTimer = nil
-                    }
                 soundManager.sndStop()
+                stopPouring()
                 // Look if any vessel contains the target contents.
                 var winningVessel: Int?
                 for i in 0 ..< activeVessels {

            tim.invalidate()
            initiateNewGameTimer = nil
            }
        pouring = false
        let puzzle = puzzles.randomPuzzle(activeVessels, difficulty: difficulty)
        recalcVessels() // Hmmmm
        updateVessels(fromPuzzle: puzzle)


    // Player taps 'new' button.
    @IBAction func newGame(sender: UIBarButtonItem) {
        // Stop sounds and any animations.
        soundManager.sndStop()
        stopPouring()
        stopDraining()
        if let tim = initiateDrainTimer {
            tim.invalidate()
            initiateDrainTimer = nil
            }
        if let tim = initiateNewGameTimer {
            tim.invalidate()
            initiateNewGameTimer = nil
            }
        // Schedule a new game.
        initiateNewGameTimer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: "initiateNewGame", userInfo: nil, repeats: false)
        }

