                 
                 drawGradientWithContext(ctx, componentsArray: componentsArray)
             } else {
-                if colorsArray.count == 1 {
-                    fillRectWithContext(ctx, color: colorsArray[0])
+                
+                var color: UIColor! = nil
+                if colorsArray.count == 0 {
+                    color = UIColor.whiteColor()
+                } else if colorsArray.count == 1 {
+                    color = colorsArray[0]
                 } else {
-                    fillRectWithContext(ctx, color: UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0))
+                    
+                    // lerpColorMode is true
+                    
+                    let t = CGFloat(reducedAngle) / 360
+                    let steps = colorsArray.count - 1;
+                    let step = 1 / CGFloat(steps);
+                    for i in 1...steps {
+                        let fi = CGFloat(i)
+                        if (t <= fi * step || i == steps) {
+                            let colorT = UtilityFunctions.InverseLerp(t, minMax: ((fi - 1) * step, fi * step))
+                            color = UtilityFunctions.ColorLerp(colorT, minMax: (colorsArray[i - 1], colorsArray[i]));
+                            break;
+                        }
+                    }
                 }
+                
+                fillRectWithContext(ctx, color: color)
             }
             CGContextRestoreGState(ctx)
             UIGraphicsPopContext()

            CGContextClipToMask(ctx, bounds, drawMask)
            
            //Gradient - Fill
            if colorsArray.count > 1 {
                var componentsArray: [CGFloat] = []
                let rgbColorsArray: [UIColor] = colorsArray.map {c in // Make sure every color in colors array is in RGB color space
                    if CGColorGetNumberOfComponents(c.CGColor) == 2 {

            startAngle = progressLayer.startAngle
            clockwise = progressLayer.clockwise
            roundedCorners = progressLayer.roundedCorners
            lerpColorMode = progressLayer.lerpColorMode
            gradientRotateSpeed = progressLayer.gradientRotateSpeed
            glowAmount = progressLayer.glowAmount
            glowMode = progressLayer.glowMode
