 		for k, v of @_stateB
 			if Color.isColorObject(v) or Color.isColorObject(@_stateA[k])
 				@_valueUpdaters[k] = @_updateColorValue
-			else if LinearGradient.isLinearGradient(v)
+			else if LinearGradient.isLinearGradient(v) or LinearGradient.isLinearGradient(@_stateA[k])
 				@_valueUpdaters[k] = @_updateGradientValue
 			else
 				@_valueUpdaters[k] = @_updateNumberValue

		@_target[key] = Color.mix(@_stateA[key], @_stateB[key], value, false, @options.colorModel)

	_updateGradientValue: (key, value) =>
		@_target[key] = LinearGradient.mix(@_stateA[key], @_stateB[key], value, @options.colorModel)

	_currentState: ->
		return _.pick(@layer, _.keys(@properties))

				animatableProperties[k] = v
			else if Color.isValidColorProperty(k, v)
				animatableProperties[k] = new Color(v)
			else if k is "gradient" and not _.isEmpty(LinearGradient._asPlainObject(v))
				animatableProperties[k] = v

		return animatableProperties

