diff --git a/src/p_local.h b/src/p_local.h
index e1cf49b4479e8e8e730f0496893eed3465dbfd6d..d1da89cbead5ead4bbe287ecb10c3672850881f8 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -306,6 +306,8 @@ void P_RadiusAttack(mobj_t *spot, mobj_t *source, fixed_t damagedist);
 fixed_t P_FloorzAtPos(fixed_t x, fixed_t y, fixed_t z, fixed_t height);
 boolean PIT_PushableMoved(mobj_t *thing);
 
+void P_DoSpring(mobj_t *spring, mobj_t *object);
+
 //
 // P_SETUP
 //
diff --git a/src/p_map.c b/src/p_map.c
index 25727fb3ddd6cf4762c8a1d58e5b778df6250042..64f43477f6070eeb0e6d1dcc0cf891a722a9c0e5 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -105,7 +105,7 @@ boolean P_TeleportMove(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z)
 //                       MOVEMENT ITERATOR FUNCTIONS
 // =========================================================================
 
-static void P_DoSpring(mobj_t *spring, mobj_t *object)
+void P_DoSpring(mobj_t *spring, mobj_t *object)
 {
 	INT32 pflags;
 	fixed_t offx, offy;