public int [] getLanguages ()
    throws IOException
    {
	synchronized (lock) {
	    if (!checkedStrings)
		languages = ControlMessage.getLanguages (this);
        checkedStrings = true;    //if don't set this can get repetitive lookup failures?  -- Wayne Westerman
	}

	if (languages == null)
	    return null;

	int retval [] = new int [languages.length];
	for (int i = 0; i < languages.length; i++)
	    retval [i] = languages [i];
	return retval;
    }