PROGMEM example fails

Having trouble with PROGMEM. I lifted this example directly from PROGMEM - Arduino Reference. It does not appear to work. What am I missing here?

// save some unsigned ints

PROGMEM  prog_uint16_t charSet[]  = { 65000, 32796, 16843, 10, 11234};

unsigned int displayInt;
int k = 0;    // counter variable

// read back a 2-byte int

 displayInt = pgm_read_word_near(charSet + k);
 Serial.print("charSet[0]:");
 Serial.println(displayInt,DEC);

returns 57372 instead of 65000

PROGMEM  prog_uint16_t charSet[]  = {65000, 32796, 16843, 10, 11234};
unsigned int displayInt;
int k = 0;

void setup()
{
  Serial.begin(115200);
  displayInt = pgm_read_word_near(charSet + k);
  Serial.print("charSet[0]:");
  Serial.println(displayInt,DEC);
}

void loop()
{
}

Works fine for me. Please post the actual program that you are using, not just the example fragment.

My code was in a sketch that was over 64K, perhaps that was it. I am now using some PROGMEM routines that are working, as long as they load low in memory.

This simple sketch works as it should, i.e. it prints 65000

#include <avr/pgmspace.h>
PROGMEM  prog_uint16_t charSet[]  = { 65000, 32796, 16843, 10, 11234};
unsigned int displayInt;
int k;    // counter variable
char myChar;  

void setup()
{
Serial.begin(9600);
}
void loop()
{
  k=0;
  displayInt = pgm_read_word_near(charSet + k);
  Serial.print(displayInt,DEC);
  while(1);
}