using leonardo to upload sketches to atmega168/328

I'm really sorry for hijacking this thread, but if I had to define a topic for my problem, this would be exactly it.

So I've got this setup with an Atmega32U4 and an Atmega168 on a custom board. The Atmega32U4 is equipped with the Leonardo Bootloader (caterina) and works like a charm. The Atmega168 is supposed to run one of the other Arduino bootloaders. For my test setup, I use an old Duemilanove with an Atmega328.
So what I'm trying to do right now is to use the /dev/ttyACMn interface of the Leonardo to program the Duemilanove which is connected to the secondary (serial1) UART.
Or simply:

[PC]===[Leonardo]===[Due]

The Code on the Leonardo looks like this:

int led = 7;         // incoming serial byte
int reset = PORTD4;
int stillReset = 0;
void setup()
{
  // start serial port at 9600 bps:
  Serial.begin(9600);
  Serial1.begin(9600);
  pinMode(led, OUTPUT); 
  pinMode(reset, OUTPUT);
  digitalWrite(reset, LOW);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

}

void loop()
{
  if (Serial.available() > 0) {
    if (stillReset > 0){
      digitalWrite(reset,HIGH);
    }
    if (stillReset == 0){
      digitalWrite(reset,LOW);
      stillReset ++;
    }

    digitalWrite(led, HIGH);
    Serial1.write(Serial.read());               
  }
    if (Serial1.available() > 0) {
      digitalWrite(led, LOW);
    Serial.write(Serial1.read());               
  }
}

As you can see, the Due is reset when the first byte is received from the PC. My analysis seemed to show that the PC is sending the character '0' three times and waiting for the Arduino to reply. But even without the automatic reset, if I try it manually, it only shows me a bunch of sdk-failed errors.
Any idea why this is not working? Is the /dev/ttyACMn really equal to the /dev/ttyUSBn or /dev/ttySn?

Thx for your help!