In the LCD Demo app for the Butterfly, the LCD_Init routine sets up LCDCRB, the ATmega169's LCD Control and Status Register B, like this:
LCDCRB = (3<<LCDMUX0) | (7<<LCDPM0);
This sets bit 7, the LCD Clock Select bit, to 0. According to http://www.atmel.com/dyn/resources/prod_documents/doc8018.pdf (the ATmega169 user guide) that should select the system clock. But the comment above this line says it selects the asynchronous clock source instead. Also, in his post "[CODE] [C] Simple Butterfly LCD driver", Dean Camera comments that he selects the asynchronous clock; sure enough, he sets the bit to 1 not 0. It looks like Dean's right and the comment in Atmel's code is wrong, so does that mean the Butterfly demo's using the wrong clock source? If so, how come it works?