diff --git a/docs/rh-log.txt b/docs/rh-log.txt
index 9ebfa4f27..f7e0d39aa 100644
--- a/docs/rh-log.txt
+++ b/docs/rh-log.txt
@@ -1,3 +1,6 @@
+November 24, 2007 (Changes by Graf Zahl)
+- added Floor_MoveToValue and Ceiling_MoveToValue action specials.
+
 November 19, 2007 (Changes by Graf Zahl)
 - Changed first name from 'none' to ''. The internal constant is still NAME_None,
   though.
diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp
index 9a3e72d77..14d54b385 100644
--- a/src/p_lnspec.cpp
+++ b/src/p_lnspec.cpp
@@ -302,6 +302,13 @@ FUNC(LS_Floor_MoveToValueTimes8)
 					   arg2*FRACUNIT*8*(arg3?-1:1), 0, 0);
 }
 
+FUNC(LS_Floor_MoveToValue)
+// Floor_MoveToValue (tag, speed, height, negative)
+{
+	return EV_DoFloor (DFloor::floorMoveToValue, ln, arg0, SPEED(arg1),
+					   arg2*FRACUNIT*(arg3?-1:1), 0, 0);
+}
+
 FUNC(LS_Floor_RaiseToLowestCeiling)
 // Floor_RaiseToLowestCeiling (tag, speed)
 {
@@ -515,6 +522,13 @@ FUNC(LS_Ceiling_MoveToValueTimes8)
 						 arg2*FRACUNIT*8*((arg3) ? -1 : 1), -1, 0, 0);
 }
 
+FUNC(LS_Ceiling_MoveToValue)
+// Ceiling_MoveToValue (tag, speed, height, negative)
+{
+	return EV_DoCeiling (DCeiling::ceilMoveToValue, ln, arg0, SPEED(arg1), 0,
+						 arg2*FRACUNIT*((arg3) ? -1 : 1), -1, 0, 0);
+}
+
 FUNC(LS_Ceiling_LowerToHighestFloor)
 // Ceiling_LowerToHighestFloor (tag, speed)
 {
@@ -2784,7 +2798,7 @@ lnSpecFunc LineSpecials[256] =
 	LS_ClearForceField,
 	LS_Floor_RaiseByValueTimes8,
 	LS_Floor_LowerByValueTimes8,
-	LS_NOP,		// 37
+	LS_Floor_MoveToValue
 	LS_Ceiling_Waggle,
 	LS_Teleport_ZombieChanger,
 	LS_Ceiling_LowerByValue,
@@ -2794,7 +2808,7 @@ lnSpecFunc LineSpecials[256] =
 	LS_Ceiling_CrushStop,
 	LS_Ceiling_CrushRaiseAndStay,
 	LS_Floor_CrushStop,
-	LS_NOP,		// 47
+	LS_Ceiling_MoveToValue,
 	LS_NOP,		// 48
 	LS_GlassBreak,
 	LS_NOP,		// 50: ExtraFloor_LightOnly
diff --git a/src/p_lnspec.h b/src/p_lnspec.h
index 0def2fcf1..3382f6fd8 100644
--- a/src/p_lnspec.h
+++ b/src/p_lnspec.h
@@ -84,6 +84,7 @@ typedef enum {
 
 	Floor_RaiseByValueTimes8 = 35,
 	Floor_LowerByValueTimes8 = 36,
+	Floor_MoveToValue = 37,
 
 	Ceiling_Waggle = 38,	// [RH] Complement of Floor_Waggle
 	Teleport_ZombieChanger = 39,	// [RH] Needed for Strife
@@ -96,6 +97,7 @@ typedef enum {
 	Ceiling_CrushRaiseAndStay = 45,
 
 	Floor_CrushStop = 46,
+	Ceiling_MoveToValue = 47,
 
 	GlassBreak = 49,
 	ExtraFloor_LightOnly = 50,