public boolean needsPatching() {
	
	//Need to check if packages have changed.
	ArrayList<File> files = Ln.generateFileList(new File(AVFileVars.AVPackagesDir), false);
	try {
		ArrayList<String> last = AVFileVars.getAVPackagesListing();
		if (files.size() != last.size()) {
			if (SPGlobal.logging()) {
				SPGlobal.logMain(header, "Needs update because number of package files changed.");
			}
			return true;
		}

		for (File f : files) {
			String path = f.getPath();
			if (!last.contains(path)) {
				if (SPGlobal.logging()) {
					SPGlobal.logMain(header, "Needs update because last package list didn't contain: " + path);
				}
				return true;
			}
		}

	} catch (IOException ex) {
		SPGlobal.logException(ex);
		return true;
	}
	return false;
}        
main