anchor.diff:  
   				//The door is instead closed.
   				else if(indirect > CONNECTION_CLOSED)
  +					DisconnectZones(A.zone, B.zone)
   					indirect = CONNECTION_CLOSED
  -
  -					DisconnectZones(A.zone, B.zone)
   					ConnectZones(A.zone, B.zone)
   
   			//If I can no longer pass air, better delete
  
positive.code: 			//Handle diconnection and reconnection of zones.
  			if(zone_A && zone_B)
  				DisconnectZones(zone_A, zone_B)
  			ConnectZones(A.zone,	B.zone, indirect)
  
  
  #undef CONNECTION_DIRECT
  
negative.code: 		if(!istype(zone_1) || !istype(zone_2))
  			return
  
  		if(indirect != CONNECTION_CLOSED)
  			//Handle disconnection of indirectly or directly connected zones.
  			if( (zone_1 in zone_2.connected_zones) || (zone_2 in zone_1.connected_zones) )
  
  				//If there are more than one connection, decrement the number of connections
  				//Otherwise, remove all connections between the zones.
  				if(zone_2 in zone_1.connected_zones)
  					if(zone_1.connected_zones[zone_2] > 1)
  						zone_1.connected_zones[zone_2]--
  					else
  						zone_1.connected_zones -= zone_2
  						//remove the list if it is empty
  						if(!zone_1.connected_zones.len)
  							zone_1.connected_zones = null
  
  				//Then do the same for the other zone.
  				if(zone_1 in zone_2.connected_zones)
  					if(zone_2.connected_zones[zone_1] > 1)
  						zone_2.connected_zones[zone_1]--
  					else
  						zone_2.connected_zones -= zone_1
  						if(!zone_2.connected_zones.len)
  							zone_2.connected_zones = null
  
  		else
  			//Handle disconnection of closed zones.
  			if( (zone_1 in zone_2.closed_connection_zones) || (zone_2 in zone_1.closed_connection_zones) )
  
  				//If there are more than one connection, decrement the number of connections
  				//Otherwise, remove all connections between the zones.
  				if(zone_2 in zone_1.connected_zones)
  					if(zone_1.closed_connection_zones[zone_2] > 1)
  						zone_1.closed_connection_zones[zone_2]--
  					else
  						zone_1.closed_connection_zones -= zone_2
  						//remove the list if it is empty
  						if(!zone_1.closed_connection_zones.len)
  							zone_1.closed_connection_zones = null
  
  				//Then do the same for the other zone.
  				if(zone_1 in zone_2.connected_zones)
  					if(zone_2.closed_connection_zones[zone_1] > 1)
  						zone_2.closed_connection_zones[zone_1]--
  					else
  						zone_2.closed_connection_zones -= zone_1
  						if(!zone_2.closed_connection_zones.len)
  							zone_2.closed_connection_zones = null
  
  
  	proc/Cleanup()
  