Index: binary-improvements/MapRendering/Web/Handlers/ItemIconHandler.cs
===================================================================
--- binary-improvements/MapRendering/Web/Handlers/ItemIconHandler.cs	(revision 286)
+++ binary-improvements/MapRendering/Web/Handlers/ItemIconHandler.cs	(revision 291)
@@ -27,9 +27,7 @@
 		public override void HandleRequest (HttpListenerRequest req, HttpListenerResponse resp, WebConnection user, int permissionLevel) {
 			if (!loaded) {
-				if (!LoadIcons ()) {
-					resp.StatusCode = (int)HttpStatusCode.NotFound;
-					Log.Out ("Web:IconHandler: Could not load icons");
-					return;
-				}
+				resp.StatusCode = (int)HttpStatusCode.InternalServerError;
+				Log.Out ("Web:IconHandler: Icons not loaded");
+				return;
 			}
 
@@ -74,4 +72,19 @@
 				}
 
+				string textureResourceName = atlas.PrebakedAtlas;
+				List<UISpriteData> sprites;
+				int elementWidth, elementHeight;
+				Texture2D atlasTex;
+
+				if (!DynamicUIAtlasTools.ReadPrebakedAtlasDescriptor (textureResourceName, out sprites, out elementWidth, out elementHeight)) {
+					SdtdConsole.Instance.Output ("Web:IconHandler: Could not read dynamic atlas descriptor");
+					return false;
+				}
+
+				if (!DynamicUIAtlasTools.ReadPrebakedAtlasTexture (textureResourceName, out atlasTex)) {
+					SdtdConsole.Instance.Output ("Web:IconHandler: Could not read dynamic atlas texture");
+					return false;
+				}
+
 				Dictionary<string, List<Color>> tintedIcons = new Dictionary<string, List<Color>> ();
 				foreach (ItemClass ic in ItemClass.list) {
@@ -89,7 +102,5 @@
 				}
 
-				Texture2D atlasTex = atlas.texture as Texture2D;
-
-				foreach (UISpriteData data in atlas.spriteList) {
+				foreach (UISpriteData data in sprites) {
 					string name = data.name;
 					Texture2D tex = new Texture2D (data.width, data.height, TextureFormat.ARGB32, false);
@@ -120,4 +131,6 @@
 				}
 
+				Resources.UnloadAsset(atlasTex);
+
 				loaded = true;
 				Log.Out ("Web:IconHandler: Icons loaded - {0} ms", microStopwatch.ElapsedMilliseconds);
