anchor.diff:  						text_list += " <font color='gray'>in</font> nullspace"
   		else		// lists are snowflake and get special treatment.
   			text_list += "<A HREF='?_src_=vars;[HrefToken(TRUE)];Vars=[REF(object)]'>/list [REF(object)]</A> \["
  -			var/first = TRUE
   			var/list/L = object
  -			for(var/key in object)
  -				if(!first)
  -					text_list += ", "
  -				first = FALSE
  -				SDQL_print(key, text_list, TRUE, recursion + 1, FALSE)
  -				if(IS_VALID_ASSOC_KEY(key) && !isnull(L[key]))
  -					text_list += " --> "
  -					SDQL_print(L[key], text_list, TRUE, recursion + 1, FALSE)
  -				text_list += "<br>"
  +			if(length(L))
  +				var/lastkey = L[length(L)]
  +				for(var/key in object)
  +					SDQL_print(key, text_list, TRUE, recursion + 1, FALSE)
  +					if(IS_VALID_ASSOC_KEY(key) && !isnull(L[key]))
  +						text_list += " --> "
  +						SDQL_print(L[key], text_list, TRUE, recursion + 1, FALSE)
  +					text_list += "<br>"
  +					if(lastkey != key)
  +						text_list += ", "
   			text_list += "\]"
   	else
   		if(isnull(object))
  
positive.code: 			if(length(select_text))
  				var/text = islist(select_text)? select_text.Join() : select_text
  				var/static/result_offset = 0
  				showmob << browse(text, "window=SDQL-result-[result_offset++]")
  	show_next_to_key = null
  	if(qdel_on_finish)
  		qdel(src)
  
negative.code:   * Seriously, if you hit those limits, you're doing something wrong.
    */
  /datum/SDQL2_query/proc/SDQL_print(datum/object, list/text_list, print_nulls = TRUE, recursion = 0, linebreak = TRUE)
  	text_list += "<span style='display: inline-block; margin-left: [min(10, recursion) * 2]em;'>"
  	if(recursion > 50)
  		text_list += "<font color='red'><b>RECURSION LIMIT REACHED.</font></b>"
  	if(is_object_datatype(object))
  