diff --git a/lottie/src/main/java/com/airbnb/lottie/parser/GradientColorParser.java b/lottie/src/main/java/com/airbnb/lottie/parser/GradientColorParser.java
index 59a8742..4eda1fd 100644
--- a/lottie/src/main/java/com/airbnb/lottie/parser/GradientColorParser.java
+++ b/lottie/src/main/java/com/airbnb/lottie/parser/GradientColorParser.java
@@ -160,10 +160,10 @@
         }
         newColors[i] = getColorInBetweenColorStops(position, opacityStopOpacities[opacityIndex], colorStopPositions, colorStopColors);
       } else {
+        // This os a step derived from a color stop.
         newColors[i] = getColorWithOpacityStops(colorStopColors[colorStopIndex], position, opacityStopPositions, opacityStopOpacities);
       }
     }
-
     return new GradientColor(newPositions, newColors);
   }
 
@@ -181,7 +181,7 @@
       float distanceToLowerColor = position - colorStopPositions[i - 1];
       float percentage = distanceToLowerColor / distanceBetweenColors;
       int upperColor = colorStopColors[i];
-      int lowerColor = colorStopColors[i];
+      int lowerColor = colorStopColors[i - 1];
       int a = (int) (opacity * 255);
       int r = MiscUtils.lerp(Color.red(lowerColor), Color.red(upperColor), percentage);
       int g = MiscUtils.lerp(Color.green(lowerColor), Color.green(upperColor), percentage);
@@ -192,9 +192,7 @@
   }
 
   private int getColorWithOpacityStops(int color, float position, float[] opacityStopPositions, float[] opacityStopOpacities) {
-    if (opacityStopPositions.length < 2) {
-      return color;
-    } else if (position <= opacityStopPositions[0]) {
+    if (opacityStopOpacities.length < 2 || position <= opacityStopPositions[0]) {
       int a = (int) (opacityStopOpacities[0] * 255);
       int r = Color.red(color);
       int g = Color.green(color);
