Program: 30605
Project: 30605
Buggy source:
@Override public TickRateModulation tickingRequest(IGridNode node,int TicksSinceLastCall){
  if (inv.getStackInSlot(9) != null) {
    pushOut(inv.getStackInSlot(9));
    ejectHeldItems();
    updateSleepyness();
    return isAwake ? TickRateModulation.IDLE : TickRateModulation.SLEEP;
  }
  if (myPlan == null) {
    updateSleepyness();
    return TickRateModulation.SLEEP;
  }
  if (reboot)   TicksSinceLastCall=1;
  reboot=false;
  int speed=10;
switch (upgrades.getInstalledUpgrades(Upgrades.SPEED)) {
case 0:
    progress+=userPower(TicksSinceLastCall,speed=10,1.0);
  break;
case 1:
progress+=userPower(TicksSinceLastCall,speed=13,1.3);
break;
case 2:
progress+=userPower(TicksSinceLastCall,speed=17,1.7);
break;
case 3:
progress+=userPower(TicksSinceLastCall,speed=20,2.0);
break;
case 4:
progress+=userPower(TicksSinceLastCall,speed=25,2.5);
break;
case 5:
progress+=userPower(TicksSinceLastCall,speed=50,5.0);
break;
}
if (progress >= 100) {
for (int x=0; x < craftingInv.getSizeInventory(); x++) craftingInv.setInventorySlotContents(x,inv.getStackInSlot(x));
progress=0;
ItemStack output=myPlan.getOutput(craftingInv,getWorldObj());
if (output != null) {
FMLCommonHandler.instance().firePlayerCraftingEvent(Platform.getPlayer((WorldServer)getWorldObj()),output,craftingInv);
pushOut(output.copy());
for (int x=0; x < craftingInv.getSizeInventory(); x++) inv.setInventorySlotContents(x,Platform.getContainerItem(craftingInv.getStackInSlot(x)));
if (inv.getStackInSlot(10) == null) {
forcePlan=false;
myPlan=null;
}
ejectHeldItems();
try {
TargetPoint where=new TargetPoint(worldObj.provider.dimensionId,xCoord,yCoord,zCoord,32);
IAEItemStack item=AEItemStack.create(output);
NetworkHandler.instance.sendToAllAround(new PacketAssemblerAnimation(xCoord,yCoord,zCoord,(byte)speed,item),where);
}
 catch (IOException e) {
}
updateSleepyness();
return isAwake ? TickRateModulation.IDLE : TickRateModulation.SLEEP;
}
}
return TickRateModulation.FASTER;
}

Fixed version (ground truth):
@Override public TickRateModulation tickingRequest(IGridNode node,int TicksSinceLastCall){
  if (inv.getStackInSlot(9) != null) {
    pushOut(inv.getStackInSlot(9));
    ejectHeldItems();
    updateSleepyness();
    return isAwake ? TickRateModulation.IDLE : TickRateModulation.SLEEP;
  }
  if (myPlan == null) {
    updateSleepyness();
    return TickRateModulation.SLEEP;
  }
  if (reboot)   TicksSinceLastCall=1;
  reboot=false;
  int speed=10;
switch (upgrades.getInstalledUpgrades(Upgrades.SPEED)) {
case 0:
    progress+=userPower(TicksSinceLastCall,speed=10,1.0);
  break;
case 1:
progress+=userPower(TicksSinceLastCall,speed=13,1.3);
break;
case 2:
progress+=userPower(TicksSinceLastCall,speed=17,1.7);
break;
case 3:
progress+=userPower(TicksSinceLastCall,speed=20,2.0);
break;
case 4:
progress+=userPower(TicksSinceLastCall,speed=25,2.5);
break;
case 5:
progress+=userPower(TicksSinceLastCall,speed=50,5.0);
break;
}
if (progress >= 100) {
for (int x=0; x < craftingInv.getSizeInventory(); x++) craftingInv.setInventorySlotContents(x,inv.getStackInSlot(x));
progress=0;
ItemStack output=myPlan.getOutput(craftingInv,getWorldObj());
if (output != null) {
FMLCommonHandler.instance().firePlayerCraftingEvent(Platform.getPlayer((WorldServer)getWorldObj()),output,craftingInv);
pushOut(output.copy());
for (int x=0; x < craftingInv.getSizeInventory(); x++) inv.setInventorySlotContents(x,Platform.getContainerItem(craftingInv.getStackInSlot(x)));
if (inv.getStackInSlot(10) == null) {
forcePlan=false;
myPlan=null;
pushDirection=ForgeDirection.UNKNOWN;
}
ejectHeldItems();
try {
TargetPoint where=new TargetPoint(worldObj.provider.dimensionId,xCoord,yCoord,zCoord,32);
IAEItemStack item=AEItemStack.create(output);
NetworkHandler.instance.sendToAllAround(new PacketAssemblerAnimation(xCoord,yCoord,zCoord,(byte)speed,item),where);
}
 catch (IOException e) {
}
updateSleepyness();
return isAwake ? TickRateModulation.IDLE : TickRateModulation.SLEEP;
}
}
return TickRateModulation.FASTER;
}