 		# Make sure we never call the constructor twice
 		throw Error("Layer.constructor #{@toInspect()} called twice") if @__constructed
 		@__constructed = true
+		@__constructing = true
 
 		# Set needed private variables
 		@_properties = {}

				@_element.style[cssProperty] = LayerStyle[cssProperty](@)

			set?(@, value)
			@emit("change:#{name}", value)
			@emit("change:point", value) if name in ["x", "y"]
			@emit("change:size", value)  if name in ["width", "height"]


			# If there is no parent we need to walk through the root
			if @parent is null
				return _.filter @_context.layers, (layer) =>
					layer isnt @ and layer.parent is null

			return _.without @parent.children, @
