 
 	scroll = new ScrollComponent
 		size: size
+		name: "scroll"
 
 	scroll.propagateEvents = false
+
+	constraints = layer.constraintValues
 
 	layer.point = 0
 	layer.parent = scroll.content
+	layer.constraintValues = constraints
 
 	scroll.scrollHorizontal = layer.maxX > size.width
 	scroll.scrollVertical = layer.maxY > size.height

		# Wrap the layer into a ScrollComponent if it exceeds the size
		# and correct the parent if needed.
		wrappedLayer = layer
		wrappedLayer = @_wrapLayer(layer) if options.scroll
		wrappedLayer.parent = @
		wrappedLayer.visible = not options.animate


	_handleOverlayTap: =>
		@showPrevious() if not @isModal

	_wrapLayer: (flowLayer) ->

		flowLayer._flowLayer = flowLayer

		return flowLayer if flowLayer instanceof ScrollComponent
		return flowLayer if flowLayer._flowWrapped

		# Make the layer at least match the device size
		flowLayer.width = Math.max(flowLayer.width, @width)
		flowLayer.height = Math.max(flowLayer.height, @height)

		layer = layoutPage(flowLayer, @size)
		layer = layoutScroll(layer, @size)

		# Mark the layer so we don't layout it twice'
		layer._flowLayer = flowLayer

		# Forward the scroll events from created scroll components
		for scroll in [layer, layer.children...]
			@_forwardScrollEvents(layer)

		# Set the background color for he created scroll component
		if layer instanceof ScrollComponent
			scroll.backgroundColor = @backgroundColor

		return layer

	_forwardScrollEvents: (scroll) =>

		return unless scroll instanceof ScrollComponent
		return if scroll._flowForward is true

		# But only the actual scroll events
		for event in [
			Events.ScrollStart,
			Events.Scroll,
			Events.ScrollMove,
			Events.ScrollEnd,
			Events.ScrollAnimationDidStart,
			Events.ScrollAnimationDidEnd]
			do (event) => scroll.on event, => @emit(event, scroll)

		scroll._flowForward = true

	_wrappedLayer: (layer) ->
		# Get the ScrollComponent for a layer if it was wrapped,
