public boolean save(GameConfiguration conf) {
		boolean ostreamCreatedHere = false;
		try {
			if (ostream == null) {
				ostream = new FileOutputStream(f);
				ostreamCreatedHere = true;
			}
			JAXBContext context = JAXBContext
					.newInstance(GameConfiguration.class);
			Marshaller marsh = context.createMarshaller();
			marsh.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			marsh.marshal(conf, ostream);
			return true;
		} catch (JAXBException e) {
			logger.error("Could not save configuration file " + f);
			logger.debug("Error message is: " + e.getMessage());
			return false;
		} catch (FileNotFoundException e) {
			logger.error("Could create world descriptor file " + f);
			return false;
		} finally {
			if (ostreamCreatedHere)
				ostream = null;
		}
	}