 			Object.preventExtensions @
 
 		update: ->
-			# sometimes it could be already destroyed
-			unless @item
+			# sometimes it can be already destroyed
+			if not @item or @updateLoops > MAX_LOOPS
 				return
 
 			# targetItem can be possibly different than actual value;

			anchors[type] = createAnchor(@, type, val)

		return

	setItemMargin: do (_super = impl.setItemMargin) -> (type, val) ->
		_super.call @, type, val

		# TODO: update only needed anchors
		if anchors = @_impl.anchors
			for source, anchor of anchors
				anchor?.update()
		return

			if padding = @item._padding
				r += getPaddingValue[@source] padding

			@updateLoops++
			@item[@prop] = r
			if @updateLoops is MAX_LOOPS
				log.error "Potential anchors loop detected. Recalculating on this anchor (#{@}) has been disabled."
				@updateLoops++
			else if @updateLoops < MAX_LOOPS
				@updateLoops--
			return

		destroy: ->
