Buggy code:
public abstract class DynamicNetwork < A , N extends DynamicNetwork < A , N > > implements IClientTicker , INetworkDataHandler , ITransmitterNetwork < A , N > { public LinkedHashSet < IGridTransmitter < N > > transmitters = new LinkedHashSet < IGridTransmitter < N > > ( ) ; public HashMap < Coord4D , A > possibleAcceptors = new HashMap < Coord4D , A > ( ) ; public HashMap < A , ForgeDirection > acceptorDirections = new HashMap < A , ForgeDirection > ( ) ; private List < DynamicNetwork . DelayQueue > updateQueue = new ArrayList < DynamicNetwork . DelayQueue > ( ) ; protected Range4D packetRange = null ; protected int ticksSinceCreate = 0 ; protected int capacity = 0 ; protected double meanCapacity = 0 ; protected boolean fixed = false ; protected boolean needsUpdate = false ; protected abstract ITransmitterNetwork < A , N > create ( IGridTransmitter < N > ... varTransmitters ) { } protected abstract ITransmitterNetwork < A , N > create ( Collection < IGridTransmitter < N > > collection ) { } protected abstract ITransmitterNetwork < A , N > create ( Set < N > networks ) { } protected void clearAround ( IGridTransmitter < N > transmitter ) { } protected void clearIfNecessary ( Coord4D acceptor , IGridTransmitter < N > transmitter , ForgeDirection side ) { } public void addAllTransmitters ( Set < IGridTransmitter < N > > newTransmitters ) { } public boolean isFirst ( IGridTransmitter < N > transmitter ) { } @ Override public void fullRefresh ( ) { } public Range4D getPacketRange ( ) { } public World getWorld ( ) { } protected Range4D genPacketRange ( ) { } @ Override public void removeTransmitter ( IGridTransmitter < N > transmitter ) { } @ Override public void register ( ) { } @ Override public void deregister ( ) { } @ Override public int getSize ( ) { } @ Override public int getAcceptorSize ( ) { } public synchronized void updateCapacity ( ) { } protected synchronized void updateMeanCapacity ( ) { } public int getCapacity ( ) { } public double getMeanCapacity ( ) { } @ Override public void tick ( ) { } public void onUpdate ( ) { } @ Override public synchronized void fixMessedUpNetwork ( IGridTransmitter < N > transmitter ) { } @ Override public synchronized void split ( IGridTransmitter < N > splitPoint ) { if ( splitPoint instanceof TileEntity ) { removeTransmitter ( splitPoint ) ; TileEntity [ ] connectedBlocks = new TileEntity [ 6 ] ; boolean [ ] dealtWith = new boolean [ ] { false , false , false , false , false , false } ; List < ITransmitterNetwork < A , N > > newNetworks = new ArrayList < ITransmitterNetwork < A , N > > ( ) ; for ( ForgeDirection side : ForgeDirection . VALID_DIRECTIONS ) { TileEntity sideTile = Coord4D . get ( ( ( TileEntity ) ( splitPoint ) ) ) . getFromSide ( side ) . getTileEntity ( ( ( TileEntity ) ( splitPoint ) ) . getWorldObj ( ) ) ; if ( sideTile != null ) { connectedBlocks [ side . ordinal ( ) ] = sideTile ; } } for ( int count = 0 ; count < ( connectedBlocks . length ) ; count ++ ) { TileEntity connectedBlockA = connectedBlocks [ count ] ; <START_BUG> if ( ( TransmissionType . checkTransmissionType ( connectedBlockA , DynamicNetwork . getTransmissionType ( ) ) ) && ( ! ( dealtWith [ count ] ) ) ) { <END_BUG> DynamicNetwork . NetworkFinder finder = new DynamicNetwork . NetworkFinder ( ( ( TileEntity ) ( splitPoint ) ) . getWorldObj ( ) , DynamicNetwork . getTransmissionType ( ) , Coord4D . get ( connectedBlockA ) , Coord4D . get ( ( ( TileEntity ) ( splitPoint ) ) ) ) ; List < Coord4D > partNetwork = finder . exploreNetwork ( ) ; for ( int check = count ; check < ( connectedBlocks . length ) ; check ++ ) { if ( check == count ) { continue ; } TileEntity connectedBlockB = connectedBlocks [ check ] ; if ( ( TransmissionType . checkTransmissionType ( connectedBlockB , DynamicNetwork . getTransmissionType ( ) ) ) && ( ! ( dealtWith [ check ] ) ) ) { if ( partNetwork . contains ( Coord4D . get ( connectedBlockB ) ) ) { dealtWith [ check ] = true ; } } } Set < IGridTransmitter < N > > newNetCables = new HashSet < IGridTransmitter < N > > ( ) ; for ( Coord4D node : finder . iterated ) { TileEntity nodeTile = node . getTileEntity ( ( ( TileEntity ) ( splitPoint ) ) . getWorldObj ( ) ) ; if ( TransmissionType . checkTransmissionType ( nodeTile , DynamicNetwork . getTransmissionType ( ) ) ) { if ( nodeTile != splitPoint ) { newNetCables . add ( ( ( IGridTransmitter < N > ) ( nodeTile ) ) ) ; } } } newNetworks . add ( create ( newNetCables ) ) ; } } if ( ( newNetworks . size ( ) ) > 0 ) { onNetworksCreated ( ( ( List ) ( newNetworks ) ) ) ; for ( ITransmitterNetwork < A , N > network : newNetworks ) { network . fullRefresh ( ) ; } } deregister ( ) ; } } @ Override public void onNetworksCreated ( List < N > networks ) { } @ Override public void setFixed ( boolean value ) { } @ Override public boolean needsTicks ( ) { } @ Override public void clientTick ( ) { } @ Override public boolean canMerge ( List < ITransmitterNetwork < ? , ? > > networks ) { } public static class ClientTickUpdate extends Event { public DynamicNetwork network ; public byte operation ;

Fix:
if ( ( ( TransmissionType . checkTransmissionType ( connectedBlockA , DynamicNetwork . getTransmissionType ( ) ) ) && ( ! ( dealtWith [ count ] ) ) ) && ( transmitters . contains ( connectedBlockA ) ) ) {