public Icon loadImage(String path) {
		Icon icon = null;
		if (asApplet || isRemote()) {
			String fileName = FileUtilities.httpEncode(FileUtilities.getFileName(path));
			URL url = null;
			boolean urlIsCorrect = true;
			String address = FileUtilities.httpEncode(FileUtilities.getCodeBase(getAddress()));
			try {
				url = new URL(new URL(address), fileName);
			} catch (MalformedURLException e) {
				e.printStackTrace();
				if (asApplet) {
					try {
						url = new File(address, fileName).toURI().toURL();
					} catch (MalformedURLException e1) {
						e1.printStackTrace();
						urlIsCorrect = false;
					}
				} else {
					urlIsCorrect = false;
				}
			}
			if (urlIsCorrect) {
				icon = ConnectionManager.sharedInstance().loadImage(url);
				if (icon == null) {
					icon = BulletIcon.ImageNotFoundIcon.sharedInstance();
				} else {
					if (icon.getIconWidth() <= 0 || icon.getIconHeight() <= 0) {
						icon = BulletIcon.ImageNotFoundIcon.sharedInstance();
					}
				}
			} else {
				icon = BulletIcon.ImageNotFoundIcon.sharedInstance();
			}
		} else {
			String fileName = FileUtilities.getFileName(path);
			icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(FileUtilities.getCodeBase(getAddress()) + fileName));
			((ImageIcon) icon).setDescription(fileName);
			if (icon.getIconWidth() <= 0 || icon.getIconHeight() <= 0) {
				icon = BulletIcon.ImageNotFoundIcon.sharedInstance();
			}
		}
		return icon;
	}