         
         case .RightLeft:
             values = [
-                [transp, opaque, opaque, opaque],           // 1)
+                currentValues ?? [transp, opaque, opaque, opaque],           // 1)
                 [transp, opaque, opaque, opaque],           // 2)
                 [transp, opaque, opaque, transp],           // 3)
                 [transp, opaque, opaque, transp],           // 4)

        }
        
        // Define values
        switch (type) {
        case .ContinuousReverse:
            values = [
                [transp, opaque, opaque, opaque],           // Initial gradient
                [transp, opaque, opaque, opaque],           // Begin of fade in
                [transp, opaque, opaque, transp],           // End of fade in, just as scroll away starts
                [transp, opaque, opaque, transp],           // Begin of fade out, just before scroll home completes

        
        // Configure gradient mask without implicit animations
        CATransaction.begin()
        CATransaction.setDisableActions(true)
        gradientMask.bounds = self.layer.bounds
        gradientMask.position = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds))
        gradientMask.shouldRasterize = true
        gradientMask.rasterizationScale = UIScreen.mainScreen().scale
        gradientMask.startPoint = CGPointMake(0.0, 0.5)
        gradientMask.endPoint = CGPointMake(1.0, 0.5)
        
        // Adjust stops based on fade length
        let leftFadeStop = fadeLength/self.bounds.size.width
        let rightFadeStop = fadeLength/self.bounds.size.width
        gradientMask.locations = [0.0, leftFadeStop, (1.0 - rightFadeStop), 1.0]
        
        // Determine colors for non-scrolling label (i.e. at home)
        let adjustedColors: [CGColorRef]
        let trailingFadeNeeded = (!self.labelize || self.labelShouldScroll())
        
        switch (type) {
