Fast PWM - Compare to OCR1A

@John: I'm using Timer1 to drive a simple pulse using the setup code:

  TCCR1A = 0;       // Clear TCCR1A/B registers
  TCCR1B = 0;
  TCNT1 = 0;        // Initialize counter to 0

  // No prescaler, period set using the following equation:
  // Compare register for TIMER1: (16mHz / frequency) - 1 = 15999 = 0x3E7F 
  OCR1A = period;
  
  // Timer/Counter Control Register for Interrupt 1 on register B
  TCCR1B |= (1 << WGM12);    // Mode 4, CTC--Clear Timer on Compare
  TCCR1B |= (1 << CS10);     // Clock Select Bit, no prescaling
  TIMSK1 |= (1 << OCIE1A);   // The value in OCR1A is used for compare

I get a great square wave out for 1000Hz. When I want to change the frequency via period at runtime and do the assignment of a new period into OCR1A, things work fine. However, if I raise the frequency to something above 2.5KHz, the frequency doesn't change. The calculation for period should work well past 2.5KHz. Anything ring a bell here?