private boolean zipPage(ZipOutputStream zipOut, File zipDir) {
		if (zipOut == null)
			return false;
		boolean isChanged = saveReminder.isChanged();
		saveTo(new File(zipDir, FileUtilities.getFileName(pageAddress)));
		saveReminder.setChanged(isChanged); // reset the SaveReminder
		nameModels(); // reset the model names
		File[] f = zipDir.listFiles();
		FileInputStream in = null;
		int c;
		boolean b = true;
		try {
			for (int i = 0; i < f.length; i++) {
				zipOut.putNextEntry(new ZipEntry(f[i].getName()));
				in = new FileInputStream(f[i]);
				while ((c = in.read()) != -1)
					zipOut.write(c);
				in.close();
				zipOut.closeEntry();
				zipOut.flush();
			}
			zipOut.finish(); // necessary?
		} catch (IOException e) {
			e.printStackTrace();
			b = false;
		} finally {
			if (in != null) { // just in case the last input stream is not closed
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			try {
				zipOut.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			FileUtilities.deleteAllFiles(zipDir);
			zipDir.delete();
		}
		return b;
	}