const PROGMEM compilation error with latest avr-gcc

Hello guys,

Since avr-gcc 4.6.1, we have to put a "const" modifier in front of our "PROGMEM" variables declarations. That's fine, and I won't debate about that. But I have an issue, I'm no longer able to declare a progmem array of progmem string pointers, even if I add the "const" modifier. Here is my SSCCE:

#define PAUSEMENULENGTH 6

const char strPlay[] PROGMEM = "Play";
const char strRestart[] PROGMEM = "Restart";
const char strHighScores[] PROGMEM = "High scores";
const char strVolume[] PROGMEM = "Volume";
const char strSystemInfo[] PROGMEM = "System Info";
const char strMainMenu[] PROGMEM = "Main Menu";

const char* pauseMenu[] PROGMEM= {
  strPlay,
  strRestart,
  strHighScores,
  strVolume,
  strSystemInfo,
  strMainMenu
};

void setup(){
}

void loop(){
}

The first part where I create the different strings works fine. But when I try to put them in the "pauseMenu" variable, I get the following error:

In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h:8:0,
                 from sketch_jun13b.ino:3:
sketch_jun13b.ino:11:25: error: variable 'pauseMenu' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

It asks for "const", but there is "const", so what wrong ?! How to make that compile ? This code works fine with avr-gcc versions older than 4.6.1 (which doesn't require "const" at all).

Another question : I found on some websites that PROGMEM is outdated, and __flash should be used instead. But __flash doesn't compile at all. Anybody heard about that ?

You have an array of constant pointers, you need a constant array (maybe, I do not have the compiler to test).

const char* const pauseMenu[] PROGMEM= {
  strPlay,
  strRestart,
  strHighScores,
  strVolume,
  strSystemInfo,
  strMainMenu
};

That works, thank you very much!