diff -durN 56/docs/rh-log.txt 57/docs/rh-log.txt
--- 56/docs/rh-log.txt	Mon Nov 24 22:09:56 2003
+++ 57/docs/rh-log.txt	Wed Nov 26 12:54:08 2003
@@ -1,4 +1,13 @@
-November 24, 2004
+November 26, 2003
+- Fixed: Ceiling type ceilRaiseToLowest (used exclusively by Ceiling_Generic)
+  set the direction to -1 instead of 1.
+- Fixed: P_TranslateLineDef() ignored the BOOM passthrough flag due to
+  bad ordering.
+- Fixed: A_WeaponReady did not center the sprites in case they had been
+  repositioned earlier. (Only really an issue with Hexen.)
+- Fixed kerning support in V_BreakLines.
+
+November 24, 2003
 - Moved the +mlook and +strafe button handling for joysticks into
   DI_JoyCheck().
 - Changed bots.cfg loading so that it is relative to progdir instead of the
diff -durN 56/src/g_hexen/a_fighterhammer.cpp 57/src/g_hexen/a_fighterhammer.cpp
--- 56/src/g_hexen/a_fighterhammer.cpp	Fri Mar 21 14:52:58 2003
+++ 57/src/g_hexen/a_fighterhammer.cpp	Wed Nov 26 12:00:10 2003
@@ -20,6 +20,7 @@
 void A_FHammerAttack (AActor *actor, pspdef_t *psp);
 void A_FHammerThrow (AActor *actor, pspdef_t *psp);
 void A_HammerSound (AActor *);
+void A_BeAdditive (AActor *);
 
 // The Fighter's Hammer -----------------------------------------------------
 
@@ -121,7 +122,7 @@
 	S_BRIGHT (FHFX, 'H',	2, NULL					    , &States[S_HAMMER_MISSILE_1]),
 
 #define S_HAMMER_MISSILE_X1 (S_HAMMER_MISSILE_1+8)
-	S_BRIGHT (FHFX, 'I',	3, NULL					    , &States[S_HAMMER_MISSILE_X1+1]),
+	S_BRIGHT (FHFX, 'I',	3, A_BeAdditive			    , &States[S_HAMMER_MISSILE_X1+1]),
 	S_BRIGHT (FHFX, 'J',	3, NULL					    , &States[S_HAMMER_MISSILE_X1+2]),
 	S_BRIGHT (FHFX, 'K',	3, A_Explode			    , &States[S_HAMMER_MISSILE_X1+3]),
 	S_BRIGHT (FHFX, 'L',	3, NULL					    , &States[S_HAMMER_MISSILE_X1+4]),
diff -durN 56/src/p_ceiling.cpp 57/src/p_ceiling.cpp
--- 56/src/p_ceiling.cpp	Fri Oct 10 11:33:18 2003
+++ 57/src/p_ceiling.cpp	Wed Nov 26 12:53:26 2003
@@ -332,7 +332,7 @@
 		case DCeiling::ceilRaiseToLowest:
 			targheight = sec->FindLowestCeilingSurrounding (&spot);
 			ceiling->m_TopHeight = sec->ceilingplane.PointToDist (spot, targheight);
-			ceiling->m_Direction = -1;
+			ceiling->m_Direction = 1;
 			break;
 
 		case DCeiling::ceilLowerToFloor:
diff -durN 56/src/p_pspr.cpp 57/src/p_pspr.cpp
--- 56/src/p_pspr.cpp	Mon Nov 24 14:07:34 2003
+++ 57/src/p_pspr.cpp	Wed Nov 26 11:55:46 2003
@@ -522,7 +522,10 @@
 		}
 	}
 
+	// Prepare for bobbing action.
 	player->cheats |= CF_WEAPONREADY;
+	psp->sx = 0;
+	psp->sy = WEAPONTOP;
 }
 
 //---------------------------------------------------------------------------
diff -durN 56/src/p_xlat.cpp 57/src/p_xlat.cpp
--- 56/src/p_xlat.cpp	Wed Nov 12 12:36:10 2003
+++ 57/src/p_xlat.cpp	Wed Nov 26 12:43:00 2003
@@ -71,6 +71,7 @@
 	BOOL passthrough;
 	int i;
 
+	passthrough = (flags & ML_PASSUSE_BOOM);
 	flags = flags & 0x01ff;	// Ignore flags unknown to DOOM
 
 	// For purposes of maintaining BOOM compatibility, each
@@ -105,8 +106,6 @@
 		}
 	}
 	tlate = (const BYTE *)tlatebase.GetMem();
-
-	passthrough = (flags & ML_PASSUSE_BOOM);
 
 	// Check if this is a regular linetype
 	if (tlate[0] == 'N' && tlate[1] == 'O' && tlate[2] == 'R' && tlate[3] == 'M')
diff -durN 56/src/v_font.cpp 57/src/v_font.cpp
--- 56/src/v_font.cpp	Mon Nov 24 17:30:52 2003
+++ 57/src/v_font.cpp	Wed Nov 26 11:41:24 2003
@@ -663,7 +663,7 @@
 	widths2 = new int[count];
 	if (data[11] & 1)
 	{
-		GlobalKerning = data[12] + data[13]*256;
+		GlobalKerning = SHORT(*(SWORD *)&data[12]);
 		widths = (WORD *)(data + 14);
 	}
 	else
diff -durN 56/src/version.h 57/src/version.h
--- 56/src/version.h	Mon Nov 24 22:26:24 2003
+++ 57/src/version.h	Wed Nov 26 13:13:18 2003
@@ -37,7 +37,7 @@
 // Lots of different representations for the version number
 enum { VERSION = 204 };
 #define STRVERSION "204"
-#define DOTVERSIONSTR "2.0.56"
+#define DOTVERSIONSTR "2.0.57"
 #define GAMEVER (2*256+2)
 
 // SAVEVER is the version of the information stored in level snapshots.
diff -durN 56/src/win32/zdoom.rc 57/src/win32/zdoom.rc
--- 56/src/win32/zdoom.rc	Mon Nov 24 22:26:24 2003
+++ 57/src/win32/zdoom.rc	Wed Nov 26 13:13:18 2003
@@ -134,7 +134,7 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,56,0
+ FILEVERSION 2,0,57,0
  PRODUCTVERSION 2,0,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
@@ -153,7 +153,7 @@
             VALUE "Comments", "Thanks to id Software for creating DOOM and then releasing the source code. Thanks also to TeamTNT for creating BOOM, which ZDoom is partially based on. Includes code based on the Cajun Bot 0.97 by Martin Collberg."
             VALUE "CompanyName", " "
             VALUE "FileDescription", "ZDoom"
-            VALUE "FileVersion", "2.0.56"
+            VALUE "FileVersion", "2.0.57"
             VALUE "InternalName", "ZDoom"
             VALUE "LegalCopyright", "Copyright © 1993-1996, id Software & 1998-2003, Randy Heit"
             VALUE "LegalTrademarks", "Doom® is a Registered Trademark of id Software, Inc."
