anchor.diff:  			var/self_temperature_delta = 0
   			var/sharer_temperature_delta = 0
   
  -			if((sharer_heat_capacity>0) && (partial_heat_capacity>0))
  -				var/heat = thermal_conductivity*delta_temperature* \
  -					(partial_heat_capacity*sharer_heat_capacity/(partial_heat_capacity+sharer_heat_capacity))
  -
  -				self_temperature_delta = -heat/total_heat_capacity
  -				sharer_temperature_delta = heat/sharer_heat_capacity
  -			else
  -				return 1
  +			if((sharer_heat_capacity <= 0) && (partial_heat_capacity <= 0))
  +				return TRUE
  +			var/heat = thermal_conductivity * delta_temperature * (partial_heat_capacity * sharer_heat_capacity / (partial_heat_capacity + sharer_heat_capacity))
  +
  +			self_temperature_delta = - heat / total_heat_capacity
  +			sharer_temperature_delta = heat / sharer_heat_capacity
   
   			air.temperature += self_temperature_delta
   			modeled_location.TakeTemperature(sharer_temperature_delta)
   
   
   	else
  -		if((target.heat_capacity>0) && (partial_heat_capacity>0))
  +		if((target.heat_capacity > 0) && (partial_heat_capacity > 0))
   			var/delta_temperature = air.temperature - target.temperature
   
  -			var/heat = thermal_conductivity*delta_temperature* \
  -				(partial_heat_capacity*target.heat_capacity/(partial_heat_capacity+target.heat_capacity))
  -
  -			air.temperature -= heat/total_heat_capacity
  +			var/heat = thermal_conductivity * delta_temperature * (partial_heat_capacity * target.heat_capacity / (partial_heat_capacity + target.heat_capacity))
  +
  +			air.temperature -= heat / total_heat_capacity
   	update = TRUE
   
   /datum/pipeline/proc/return_air()
  
positive.code: 
  	var/list/total_gases = total_gas_mixture.gases
  
  	for(var/i in GL)
  		var/datum/gas_mixture/G = i
  		total_gas_mixture.volume += G.volume
  
  		// This is sort of a combined merge + heat_capacity calculation
  
  		var/list/giver_gases = G.gases
  		//gas transfer
  		for(var/giver_id in giver_gases)
  			var/giver_gas_data = giver_gases[giver_id]
  
negative.code: 			total_gases[giver_id][MOLES] += giver_gas_data[MOLES]
  			total_heat_capacity += giver_gas_data[MOLES] * giver_gas_data[GAS_META][META_GAS_SPECIFIC_HEAT]
  
  		total_thermal_energy += THERMAL_ENERGY(gas_mixture)
  
  	total_gas_mixture.temperature = total_heat_capacity ? (total_thermal_energy / total_heat_capacity) : 0
  
  	if(total_gas_mixture.volume > 0)
  		//Update individual gas_mixtures by volume ratio
  		for(var/mixture in gas_mixture_list)
  			var/datum/gas_mixture/gas_mixture = mixture
  			gas_mixture.copy_from(total_gas_mixture, gas_mixture.volume / total_gas_mixture.volume)
  