Program: 117149
Project: 117149
Buggy source:
/** 
 * Clears the pedestal list and then re acquires all valid pedestals.
 */
public void updatePedestals(){
  if (isCrafting.value) {
    return;
  }
  pedestals.clear();
  int range=16;
  List<BlockPos> positions=new ArrayList<BlockPos>();
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-range,-1,-1),pos.add(range,1,1))));
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1,-range,-1),pos.add(1,range,1))));
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1,-1,-range),pos.add(1,1,range))));
  for (  BlockPos checkPos : positions) {
    TileEntity tile=worldObj.getTileEntity(checkPos);
    if (tile instanceof ICraftingPedestal) {
      ICraftingPedestal pedestal=(ICraftingPedestal)tile;
      Vec3D dirVec=new Vec3D(tile.getPos()).subtract(pos);
      double dist=Utils.getDistanceAtoB(new Vec3D(tile.getPos()),new Vec3D(pos));
      if (dist >= 2 && EnumFacing.getFacingFromVector((int)dirVec.x,(int)dirVec.y,(int)dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) {
        BlockPos pPos=tile.getPos();
        EnumFacing facing=pedestal.getDirection();
        List<BlockPos> checkList=Lists.newArrayList(BlockPos.getAllInBox(pPos.offset(facing),pPos.offset(facing,FacingUtils.destanceInDirection(pPos,pos,facing) - 2)));
        boolean obstructed=false;
        for (        BlockPos bp : checkList) {
          if (!worldObj.isAirBlock(bp) && (worldObj.getBlockState(bp).isFullCube() || worldObj.getTileEntity(bp) instanceof ICraftingPedestal)) {
            obstructed=true;
            break;
          }
        }
        if (!obstructed) {
          pedestals.add(pedestal);
        }
 else {
          pedestal.setCraftingInventory(null);
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Clears the pedestal list and then re acquires all valid pedestals.
 */
public void updatePedestals(){
  if (isCrafting.value) {
    return;
  }
  pedestals.clear();
  int range=16;
  List<BlockPos> positions=new ArrayList<BlockPos>();
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-range,-1,-1),pos.add(range,1,1))));
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1,-range,-1),pos.add(1,range,1))));
  positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1,-1,-range),pos.add(1,1,range))));
  for (  BlockPos checkPos : positions) {
    TileEntity tile=worldObj.getTileEntity(checkPos);
    if (tile instanceof ICraftingPedestal) {
      ICraftingPedestal pedestal=(ICraftingPedestal)tile;
      Vec3D dirVec=new Vec3D(tile.getPos()).subtract(pos);
      double dist=Utils.getDistanceAtoB(new Vec3D(tile.getPos()),new Vec3D(pos));
      if (dist >= 2 && EnumFacing.getFacingFromVector((int)dirVec.x,(int)dirVec.y,(int)dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) {
        BlockPos pPos=tile.getPos();
        EnumFacing facing=pedestal.getDirection();
        List<BlockPos> checkList=Lists.newArrayList(BlockPos.getAllInBox(pPos.offset(facing),pPos.offset(facing,FacingUtils.destanceInDirection(pPos,pos,facing) - 1)));
        boolean obstructed=false;
        for (        BlockPos bp : checkList) {
          if (!worldObj.isAirBlock(bp) && (worldObj.getBlockState(bp).isFullCube() || worldObj.getTileEntity(bp) instanceof ICraftingPedestal)) {
            obstructed=true;
            break;
          }
        }
        if (!obstructed) {
          pedestals.add(pedestal);
        }
 else {
          pedestal.setCraftingInventory(null);
        }
      }
    }
  }
}