 		if colorB instanceof Color
 
 			result = new Color
-				r: Utils.modulate(fraction, [0, 1], [colorA._r, colorB._r], true)
-				g: Utils.modulate(fraction, [0, 1], [colorA._g, colorB._g], true)
-				b: Utils.modulate(fraction, [0, 1], [colorA._b, colorB._b], true)
-				a: Utils.modulate(fraction, [0, 1], [colorA._a, colorB._a], true)
+				r: Utils.modulate(fraction, [0, 1], [colorA._r, colorB._r], limit)
+				g: Utils.modulate(fraction, [0, 1], [colorA._g, colorB._g], limit)
+				b: Utils.modulate(fraction, [0, 1], [colorA._b, colorB._b], limit)
+				a: Utils.modulate(fraction, [0, 1], [colorA._a, colorB._a], limit)
 
 		return result
 

			b: @b
			a: 0

	mix: (colorB, fraction) ->
		return Color.mix(@, colorB, fraction)

	toInspect: =>
		"<#{@constructor.name} r:#{@r} g:#{@g} b:#{@b} a:#{@a}>"

	##############################################################
	## Class methods

	@mix: (colorA, colorB, fraction = .5, limit = false) ->

		result = null

		if typeof colorA is "string" and @isColorString(colorA)
			colorA = new Color colorA
