diff --git a/src/main/java/carpetclient/mixins/MixinGuiDownloadTerrain.java b/src/main/java/carpetclient/mixins/MixinGuiDownloadTerrain.java
new file mode 100644
index 0000000..37b6c5c
--- /dev/null
+++ b/src/main/java/carpetclient/mixins/MixinGuiDownloadTerrain.java
@@ -0,0 +1,21 @@
+package carpetclient.mixins;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiDownloadTerrain;
+import net.minecraft.network.play.client.CPacketKeepAlive;
+import org.spongepowered.asm.mixin.Mixin;
+
+@Mixin(GuiDownloadTerrain.class)
+public class MixinGuiDownloadTerrain {
+
+    private int counter = 0;
+
+    public void updateScreen()
+    {
+        ++counter;
+        if (counter % 20 == 0)
+        {
+            Minecraft.getMinecraft().getConnection().sendPacket(new CPacketKeepAlive());
+        }
+    }
+}
diff --git a/src/main/resources/mixins.carpetclient.json b/src/main/resources/mixins.carpetclient.json
index 103e7a1..e44a79b 100644
--- a/src/main/resources/mixins.carpetclient.json
+++ b/src/main/resources/mixins.carpetclient.json
@@ -49,6 +49,7 @@
     "MixinWorldServer",
     "MixinItemStack",
     "MixinGuiScreen",
-    "MixinGuiRecipeBook"
+    "MixinGuiRecipeBook",
+    "MixinGuiDownloadTerrain"
   ]
 }