 													color: "#999"
 									popupStyling()
 						Dom.div !->
-							Ui.avatar Plugin.userAvatar(if self then Plugin.userId() else userLocation.key()), size: 40
+							Obs.observe !->
+								lastUpdate = userLocation.get('time')
+								if ((new Date()/1000)-lastUpdate) > 60*60 # Make old locations less visible
+									style =
+										opacity: 0.7
+								else
+									style =
+										opacity: 1
+								Ui.avatar Plugin.userAvatar(if self then Plugin.userId() else userLocation.key()), size: 40, style: style
 							Dom.style
 								borderRadius: "50%"
 								backgroundSize: "contain"
 								backgroundRepeat: "no-repeat"
 								backgroundColor: "#FFF"
-							Obs.observe !->
-								lastUpdate = userLocation.get('time')
-								if ((new Date()/1000)-lastUpdate) > 60*60 # Make old locations less visible
-									Dom.style
-										opacity: 0.7
-								else
-									Dom.style
-										opacity: 1
 						# Popup trigger
 						Dom.onTap !->
 							if showPopup.peek() is userLocation.key()

		color: "#222"
	height = Dom.get().height()
	width = Dom.get().width()
	Dom.style
		margin: (-height-7-21)+"px 0 7px -"+(width/2-21)+"px" # 21=half height of marker itself


			# Remove spinners after a minute
			if justOpened
				justOpened = false
				openedAt = Date.now()
				Obs.onTime 60*1000, !->
					showSpinner.set {}
			else
				if (diff = (Date.now() - openedAt)) < 60*1000
					Obs.onTime 60*1000-diff, !->
						showSpinner.set {}
			# Render spinners
			Plugin.users.iterate (user) !->
				if !showSpinner.get(user.key())
					return
