--- ../src-base/minecraft/net/minecraft/server/integrated/IntegratedServer.java
+++ ../src-work/minecraft/net/minecraft/server/integrated/IntegratedServer.java
@@ -74,8 +74,6 @@
     protected void func_71247_a(String p_71247_1_, String p_71247_2_, long p_71247_3_, WorldType p_71247_5_, String p_71247_6_)
     {
         this.func_71237_c(p_71247_1_);
-        this.field_71305_c = new WorldServer[3];
-        this.field_71312_k = new long[this.field_71305_c.length][100];
         ISaveHandler isavehandler = this.func_71254_M().func_75804_a(p_71247_1_, true);
         this.func_175584_a(this.func_71270_I(), isavehandler);
         WorldInfo worldinfo = isavehandler.func_75757_d();
@@ -88,45 +86,25 @@
         {
             worldinfo.func_76062_a(p_71247_2_);
         }
+        WorldServer overWorld = (func_71242_L() ? (WorldServer)(new DemoWorldServer(this, isavehandler, worldinfo, 0, this.field_71304_b)).func_175643_b() :
+                                            (WorldServer)(new WorldServer(this, isavehandler, worldinfo, 0, this.field_71304_b)).func_175643_b());
+        overWorld.func_72963_a(this.field_71350_m);
 
-        for (int j = 0; j < this.field_71305_c.length; ++j)
+        for (int dim : net.minecraftforge.common.DimensionManager.getStaticDimensionIDs())
         {
-            byte b0 = 0;
 
-            if (j == 1)
+            WorldServer world = (dim == 0 ? overWorld : (WorldServer)(new WorldServerMulti(this, isavehandler, dim, overWorld, this.field_71304_b)).func_175643_b());
+            world.func_72954_a(new WorldManager(this, world));
+            if (!this.func_71264_H())
             {
-                b0 = -1;
+                world.func_72912_H().func_76060_a(func_71265_f());
             }
-
-            if (j == 2)
-            {
-                b0 = 1;
-            }
-
-            if (j == 0)
-            {
-                if (this.func_71242_L())
-                {
-                    this.field_71305_c[j] = (WorldServer)(new DemoWorldServer(this, isavehandler, worldinfo, b0, this.field_71304_b)).func_175643_b();
-                }
-                else
-                {
-                    this.field_71305_c[j] = (WorldServer)(new WorldServer(this, isavehandler, worldinfo, b0, this.field_71304_b)).func_175643_b();
-                }
-
-                this.field_71305_c[j].func_72963_a(this.field_71350_m);
-            }
-            else
-            {
-                this.field_71305_c[j] = (WorldServer)(new WorldServerMulti(this, isavehandler, b0, this.field_71305_c[0], this.field_71304_b)).func_175643_b();
-            }
-
-            this.field_71305_c[j].func_72954_a(new WorldManager(this, this.field_71305_c[j]));
+            net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Load(world));
         }
 
-        this.func_71203_ab().func_72364_a(this.field_71305_c);
+        this.func_71203_ab().func_72364_a(new WorldServer[]{ overWorld });
 
-        if (this.field_71305_c[0].func_72912_H().func_176130_y() == null)
+        if (overWorld.func_72912_H().func_176130_y() == null)
         {
             this.func_147139_a(this.field_71349_l.field_71474_y.field_74318_M);
         }
