 					classes.append name
 		return
 
+	getTextObject: ->
+		if @item.$? and 'text' of @item.$
+			@item.$
+		else if 'text' of @item
+			@item
+		else if @item.label? and 'text' of @item.label
+			@item.label
+
 	updateText: ->
-		if @item.$? and 'text' of @item.$
-			obj = @item.$
-		else if 'text' of @item
-			obj = @item
-		else if @item.label? and 'text' of @item.label
-			obj = @item.label
-
+		obj = @getTextObject()
 		node = @node
 		if node.children.length is 1 and node.children[0].name is 'a'
 			node = node.children[0]
 			href = node.attrs.get('href')
 			if typeof href is 'string'
+				unless @isLinkUriSet
+					@isLinkUriSet = true
+					@baseLinkUri = @item.linkUri
 				@item.linkUri = href
 
 		if obj

			if !@parentSet
				@lastItemParent = @item.parent
			@item.parent = null
		@item.document.node = null

		tmpNode = @node

		@textWatchingNodes = []
		@visible = true
		@isTextSet = false
		@baseText = ''
		@isLinkUriSet = false
		@baseLinkUri = ''
		@classes = null
		@parentSet = false
		@lastItemParent = null
