avrdude version issue

I have a board with its own bootloader, but I'm finding that the Arduino IDE's version of avrdude (5.4-arduino on OS X) doesn't seem to get along nicely with it. It works fine with newer versions of avrdude (I've tested 5.6 and 5.8). In fact, if I replace the avrdude in the Arduino.app package with a newer version, everything works perfectly from the IDE.

I'd really rather not have to have my users mucking around with the version of avrdude, so I was wondering if anyone might have insight into how I can fix it with Arduino's version. Or, failing that, if anybody knows if the Arduino IDE will update their avrdude version anytime soon.

Here are details of the problem: looking at the verbose output from avrdude, I find that both versions are identical up to the line

avrdude: AVR device initialized and ready to accept instructions

At that point, the newer version of avrdude continues with

Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00]   [20]

while the older, Arduino version of avrdude has

Reading | avrdude: Send: u [75]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: error reading signature data for part "ATMEGA168", rc=-1
avrdude: error reading signature data, rc=-1
avrdude: Send: Q [51]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10]

Any thoughts?

What Arduino do you have selected?

I'm a windows user so can't give you any specific help. However I have a suspicion that this involves the auto-reset command that the IDE issues via the DTR/RTS serial control, which forces the bootloader active in the AVR. Have you tried to manually press the reset button just prior to the upload? The timing is tricky but usually helps isolate this kind of problem

I have my own custom board definition, from a custom boards.txt, selected. It's an ATMega168 with a clock speed of 18.432MHz.

Not the auto-reset, I'm afraid: I'm resetting it manually, and it works fine with the newer avrdude (both from the IDE and the command line) but not with the "stock" avrdude (both from the IDE and the command line). From the output I posted above, the old avrdude is sending a different command than the newer versions, even with all of the command-line options and configuration files identical. I just don't know why that is, how/if it can be fixed short of replacing the avrdude. If that's the case, I'm wondering if anybody involved with the IDE knows if/when avrdude will be updated in the distribution.