 						y: newFrame.y
 						width: newFrame.width
 						height: newFrame.height
-				_.extend animationObj, animationOptions
-				transition = sub.animate animationObj
-				transition.on Events.AnimationEnd, ->
-					sub = this._target
-					if sub.originalImage?
-						sub.image = sub.originalImage
-			else # fade in
+						opacity: 1
+			else # fade in new layers
 				sub.opacity = 0
 				animationObj = 
 					properties:
 						opacity: 1
-				_.extend animationObj, animationOptions
-				sub.animate animationObj
+			_.extend animationObj, animationOptions
+			sub.animate animationObj
 
 	# Backwards compatibility
 	transition: (newView, direction = 'right') ->

				match = exisitingLayers[sub.name]
				newFrame = sub.frame
				prevFrame = match.frame
				if prevFrame.width > newFrame.width # use largest image during animation
					sub.originalImage = sub.image
					sub.image = match.image
				sub.frame = prevFrame
				animationObj = 
					properties:

			# reset common properties in case they
			# were changed during last animation
			#@current.z = 0
			newView.brightness = 100
			newView.opacity = 1
			newView.scale = 1

			@add newView if @subLayers.indexOf(newView) is -1

			# Animate the current view
			_.extend @current, outgoing.start
			outgoingAnimationObject = 
				layer: @current
				properties: {}
			outgoingAnimationObject.delay = outgoing.delay
			_.extend outgoingAnimationObject.properties, outgoing.end
			_.extend outgoingAnimationObject, animationOptions
			outgoingAnimation = new Animation(outgoingAnimationObject)
			outgoingAnimation.start()

			# Animate the new view
			_.extend newView, incoming.start
			incomingAnimationObject = 
				layer: newView
				properties: {}
			incomingAnimationObject.delay = incoming.delay
			_.extend incomingAnimationObject.properties, incoming.end
			_.extend incomingAnimationObject, animationOptions
			incomingAnimation = new Animation(incomingAnimationObject)
			incomingAnimation.start()

			@saveCurrentToHistory incomingAnimation, outgoingAnimation
			@current = newView
			@current.bringToFront()

