 				@_element.style[cssProperty] = LayerStyle[cssProperty](@)
 
 			set?(@, value)
+
+			# We try to not send any events while we run the constructor, it just
+			# doesn't make sense, because no one can listen to use yet.
+			return if @__constructing
+
 			@emit("change:#{name}", value)
 			@emit("change:point", value) if name in ["x", "y"]
 			@emit("change:size", value)  if name in ["width", "height"]

		@animationOptions = {}
		@_stateMachine = new LayerStateMachine(@)
		@_context.emit("layer:create", @)

	##############################################################
	# Properties

		# 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 = {}
