public String randomWordFromDictionary(boolean withPunctuation)
  {
    String word = null;
    try
    {
      int pos = rand.nextInt((int)dictionary.length());
      dictionary.seek(pos);
      word = dictionary.readLine(); // we surely only get the end of a word
      word = dictionary.readLine(); // this one should be ok
    }
    catch (Exception e)
    {
      System.err.println("Unable to read dictionary file '"+rubbos.getStoryDictionary()+"' to generate random word (got exception: "+e.getMessage()+")<br>");
      return null;
    }
    if (word.indexOf(' ') != -1)
      word = word.substring(0, word.indexOf(' ')); // Ignore everything after the first space
    if (withPunctuation)
    {
      switch (rand.nextInt(10))
      {
      case 0: 
        word += ", ";
        break;
      case 1: 
        word += ". ";
        break;
      case 2: 
        word += " ? ";
        break;
      case 3: 
        word += " ! ";
        break;
      case 4: 
        word += ": ";
        break;
      case 5: 
        word += " ; ";
        break;
      default: 
        word += " ";
        break;
      }
    }
    return word;
  }