anchor.diff:  	    String charset = partContentType.getParameterList().get("charset");
   	    if (charset == null) charset = "iso-8859-1";
   	    HtmlSanitizer.parse(text.getNo(), is, response.getOutputStream(), charset);
  -	} else {	
  +	} else {
  +	    if (request.getParameter("download") != null) {
  +		response.setHeader("Content-Disposition", "attachment; filename=\"" + 
  +			part.getFileName() + "\"");
  +	    }	
   	    OutputStream os = response.getOutputStream();
   	    byte[] buf = new byte[1024];
   
  
positive.code: 	    }
  	    if (part == null) {
  		response.setContentType("text/plain");
  		out.println("no such file");
  		return;
  	    }
  	}
          if (partNo > multipart.getCount()) {
  	    response.setContentType("text/plain");
  	    out.println("part not found");
  	    return;
  
negative.code: 	} else if (part == null) {
  	    throw new ServletException("part not found.");
  	}
  	if (part.isMimeType("multipart/*") && request.getParameter("subpart") != null) {
  	    MimeMultipart alternative = new MimeMultipart(new MimePartDataSource((MimeBodyPart) part));
  	    part = alternative.getBodyPart(Integer.parseInt(request.getParameter("subpart")));
  	}
  