PWM driven LED array over a shift register
I believe you need to set PWM to off while you are changing content of the 595. 

OCR0A = 255; // set PWM to no brightness (off)
_delay_a_little_more;
SPDR = 0b00000001; // select first LED
while(!(SPSR &amp; (1&lt;&lt;SPIF))); // write to shift register
PORTB = 0; // latch outputs
PORTB = 1;
OCR0A = 0; // set PWM to full brightness
_delay_ms(1);

OCR0A = 255; // set PWM to no brightness (off)
_delay_a_little_more;
SPDR = 0b00000010; // select second LED
while(!(SPSR &amp; (1&lt;&lt;SPIF)));
PORTB = 0;
PORTB = 1;
OCR0A = 255; // set PWM to no brightness (off)
_delay_ms(1);


On a side note - there is more efficient way of doing what you want (i.e. controlling brightness of multiple LEDs with 595 and EN pin). It's called Binary Code Modulation. http://www.batsocks.co.uk/readme/art_bcm_3.htm