SS_silence_def find_silence(String pref_lang_locale, char sent, char script)
  {
	String loc = pref_lang_locale;
	// System.out.println("Looking for silence '"+sent+"' in locale '"+pref_lang_locale+"'");
	
	do
	  {
		/* see if this silence_def exists in the scriptsets */
		SS_scriptset ss = scriptsets_by_lang.get(loc);
		if (ss != null)
		  {
			/* there is a scriptset by this name! */
			ListIterator<SS_silence_def> silit = ss.silence_def_list.listIterator();
			while (silit.hasNext())
			  {
				SS_silence_def sd = (SS_silence_def)silit.next();
				// System.out.println("Silence def '"+sd.sent_silence_rep+"'");
				if (sent != '\0')
				  {
					if (sent == sd.sent_silence_rep)
					  {
						return sd;
					  }
				  }
				else if (script != '\0')
				  {
					if (script == sd.script_silence_rep)
					  {
						return sd;
					  }
				  }
			  }
		  }
                else
                  {
                        // System.out.println("no scriptset for "+loc);
                  }
		
		loc = strip_locale(loc);
	  }
	while( loc != null);
	
	/* wait a minute, we really should revert to "en" if nothing else works */
	if (!loc.equals("en"))
	  return find_silence("en", sent, script);
	
	return null;
  }