Program: 1580
Project: 1580
Buggy source:
/** 
 * @param account
 * @param controller If set to null, won't display messages.
 * @param amount
 * @param console Is it sent via console?
 */
public void showGrant(String name,Player controller,double amount,boolean console){
  Player online=iConomy.getBukkitServer().getPlayer(name);
  Account account=iConomy.getBank().getAccount(name);
  account.add(amount);
  account.save();
  if (amount < 0.0) {
    iConomy.getTransactions().insert("String_Node_Str",name,0.0,account.getBalance(),0.0,0.0,amount);
  }
 else {
    iConomy.getTransactions().insert("String_Node_Str",name,0.0,account.getBalance(),0.0,amount,0.0);
  }
  if (online != null) {
    Messaging.send(online,Template.color("String_Node_Str") + Template.parse((amount < 0.0) ? "String_Node_Str" : "String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{(console) ? "String_Node_Str" : controller.getName(),iConomy.getBank().format(((amount < 0.0) ? amount * -1 : amount))}));
    showBalance(name,online,true);
  }
  if (controller != null) {
    Messaging.send(Template.color("String_Node_Str") + Template.parse((amount < 0.0) ? "String_Node_Str" : "String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{name,iConomy.getBank().format(amount)}));
  }
  if (console) {
    System.out.println("String_Node_Str" + account.getName() + "String_Node_Str"+ amount+ "String_Node_Str");
  }
 else {
    System.out.println(Messaging.bracketize("String_Node_Str") + "String_Node_Str" + account.getName()+ "String_Node_Str"+ amount+ "String_Node_Str"+ controller.getName()+ "String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * @param account
 * @param controller If set to null, won't display messages.
 * @param amount
 * @param console Is it sent via console?
 */
public void showGrant(String name,Player controller,double amount,boolean console){
  Player online=iConomy.getBukkitServer().getPlayer(name);
  if (online != null) {
    name=online.getName();
  }
  Account account=iConomy.getBank().getAccount(name);
  if (account != null) {
    account.add(amount);
    account.save();
    if (amount < 0.0) {
      iConomy.getTransactions().insert("String_Node_Str",name,0.0,account.getBalance(),0.0,0.0,amount);
    }
 else {
      iConomy.getTransactions().insert("String_Node_Str",name,0.0,account.getBalance(),0.0,amount,0.0);
    }
    if (online != null) {
      Messaging.send(online,Template.color("String_Node_Str") + Template.parse((amount < 0.0) ? "String_Node_Str" : "String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{(console) ? "String_Node_Str" : controller.getName(),iConomy.getBank().format(((amount < 0.0) ? amount * -1 : amount))}));
      showBalance(name,online,true);
    }
    if (controller != null) {
      Messaging.send(Template.color("String_Node_Str") + Template.parse((amount < 0.0) ? "String_Node_Str" : "String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{name,iConomy.getBank().format(amount)}));
    }
    if (console) {
      System.out.println("String_Node_Str" + account.getName() + "String_Node_Str"+ amount+ "String_Node_Str");
    }
 else {
      System.out.println(Messaging.bracketize("String_Node_Str") + "String_Node_Str" + account.getName()+ "String_Node_Str"+ amount+ "String_Node_Str"+ controller.getName()+ "String_Node_Str");
    }
  }
}