diff --git a/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java b/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
index 37190beac..135f6ff11 100644
--- a/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
+++ b/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventory.java
@@ -286,7 +286,7 @@ public class ScreenInventory extends ScreenContainerAbstract
         GL11.glTranslatef(0.0F, mc.thePlayer.heightOffset, 0.0F);
         EntityRenderDispatcher.instance.viewLerpYaw = 180F;
         EntityRenderer.renderShadows = false;
-        EntityRenderDispatcher.instance.renderEntityWithPosYaw(Tessellator.instance, mc.thePlayer, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
+        EntityRenderDispatcher.instance.renderEntityPreviewWithPosYaw(Tessellator.instance, mc.thePlayer, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
         EntityRenderer.renderShadows = true;
         mc.thePlayer.entityBrightness = 0.0F;
         mc.thePlayer.yBodyRot = f2;
diff --git a/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java b/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
index c4f5c3e97..72742b02f 100644
--- a/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
+++ b/game/client/src/main/java/net/minecraft/client/gui/container/ScreenInventoryCreative.java
@@ -214,7 +214,7 @@ public class ScreenInventoryCreative extends ScreenInventory implements ITextCha
         GL11.glTranslatef(0.0F, mc.thePlayer.heightOffset, 0.0F);
         EntityRenderDispatcher.instance.viewLerpYaw = 180F;
 		EntityRenderer.renderShadows = false;
-        EntityRenderDispatcher.instance.renderEntityWithPosYaw(Tessellator.instance, mc.thePlayer, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
+        EntityRenderDispatcher.instance.renderEntityPreviewWithPosYaw(Tessellator.instance, mc.thePlayer, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F);
 		EntityRenderer.renderShadows = true;
 		mc.thePlayer.entityBrightness = 0.0F;
         mc.thePlayer.yBodyRot = f2;
diff --git a/game/client/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java b/game/client/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
index 70d67c023..885cf0526 100644
--- a/game/client/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
+++ b/game/client/src/main/java/net/minecraft/client/render/entity/MobRendererBiped.java
@@ -114,11 +114,11 @@ public abstract class MobRendererBiped<T extends Mob> extends MobRenderer<T> {
 
         if(entity.isSneaking())
         {
-            waist.posY -= 4;
+            waist.posY -= 2;
             leftLeg.posZ += 5;
             rightLeg.posZ += 5;
-            head.posY -= 2;
-            torso.posY -= 2;
+            head.posY -= 3.5;
+            torso.posY -= 3.5;
             torso.rotX = 0.5F;
 
 
@@ -165,4 +165,10 @@ public abstract class MobRendererBiped<T extends Mob> extends MobRenderer<T> {
             }
         }
     }
+
+    @Override
+    public void renderPreview(@NotNull final Tessellator tessellator, @NotNull final T entity, final double x, final double y, final double z, final float yaw, final float partialTick) {
+        if (entity.isSneaking()) GL11.glTranslatef(0, 2/16f, 4/16f);
+        super.renderPreview(tessellator, entity, x, y, z, yaw, partialTick);
+    }
 }
diff --git a/game/core/src/main/java/net/minecraft/core/entity/player/Player.java b/game/core/src/main/java/net/minecraft/core/entity/player/Player.java
index 677df77da..f3a8f2d6e 100644
--- a/game/core/src/main/java/net/minecraft/core/entity/player/Player.java
+++ b/game/core/src/main/java/net/minecraft/core/entity/player/Player.java
@@ -263,8 +263,8 @@ public abstract class Player
 
         final boolean wSneak = wantSneak();
 
-        if (wSneak) {
-            this.sneaking = true;
+        if (wSneak || this.noPhysics) {
+            this.sneaking = wSneak;
         } else {
             if (boundsClear(getBoundsForState(MOTION_STATE_DEFAULT))) {
                 this.sneaking = false;
