PROGMEM in the Arduino 1.0.1 IDE

tocpcs:
The array being passed in is as below:
const char displayMenu[6][13] PROGMEM = {"Display menu", "Exit", "Contrast", "Metric", "Fuel/Hour", "Font"};
const char adjustMenu[11][12] PROGMEM = {"Adjust menu", "Exit", "Tank Size", "Fuel Cost", "Fuel %", "Speed %", "Out Wait", "Trip Wait", "Tank Used", "Tank Dist", "Eng Disp"};

They were defined as:
prog_char *adjustMenu[] PROGMEM = {"Adjust menu", "Exit", "Tank Size", "Fuel Cost", "Fuel %", "Speed %", "Out Wait", "Trip Wait", "Tank Used", "Tank Dist", "Eng Disp", };

You appear to be using a mixture of 2-dimensional char arrays, and arrays of char pointers. These are not the same. The 2D array form wastes space by padding out all the strings to the size of the biggest one. I suggest you use arrays of char pointer throughout. Define them like this:

const char *adjustMenu[] PROGMEM = {"Adjust menu", "Exit", "Tank Size", "Fuel Cost", "Fuel %", "Speed %", "Out Wait", "Trip Wait", "Tank Used", "Tank Dist", "Eng Disp", };

When you declare functions that take them as parameters, declare the parameter type as "const char *" or "const char[]".

EDIT: even better, use "const char* const adjustMenu[] PROGMEM" and "const char* const*" or "const char* const[]".