Index: code/parse/sexp.cpp
===================================================================
--- code/parse/sexp.cpp	(revision 7731)
+++ code/parse/sexp.cpp	(working copy)
@@ -6327,11 +6327,36 @@
 		case OSWPT_TYPE_WING:
 		case OSWPT_TYPE_WAYPOINT:
 		case OSWPT_TYPE_TEAM:
+		{
 			sexp_set_object_speed(oswpt.objp, speed, axis, subjective);
+
+			//CommanderDJ - we put the multiplayer callback stuff in here to prevent doing unnecessary checks clientside
+			multi_start_callback();
+			multi_send_object(oswpt.objp);
+			multi_send_int(speed);
+			multi_send_int(axis);
+			multi_send_int(subjective);
+			multi_end_callback();
+
 			break;
+		}
 	}
 }
 
+//CommanderDJ
+void multi_sexp_set_object_speed()
+{
+	object_ship_wing_point_team oswpt;
+	int speed = 0, axis = 0, subjective = 0;
+
+	multi_get_object(oswpt.objp);
+	multi_get_int(speed);
+	multi_get_int(axis);
+	multi_get_int(subjective);
+
+	sexp_set_object_speed(oswpt.objp, speed, axis, subjective);
+}
+
 int sexp_get_object_speed(object *objp, int axis, int subjective)
 {
 	Assertion(((axis >= 0) && (axis <= 2)), "Axis is out of range (%d)", axis);
@@ -22181,6 +22206,12 @@
 				multi_sexp_clear_subtitles();
 				break;
 
+			case OP_SET_OBJECT_SPEED_X:
+			case OP_SET_OBJECT_SPEED_Y:
+			case OP_SET_OBJECT_SPEED_Z:
+				multi_sexp_set_object_speed();
+				break;
+
 			// bad sexp in the packet
 			default: 
 				// probably just a version error where the host supports a SEXP but a client does not
@@ -22742,7 +22773,7 @@
 		case OP_CUTSCENES_RESET_TIME_COMPRESSION:
 		case OP_CUTSCENES_FORCE_PERSPECTIVE:
 		case OP_SET_CAMERA_SHUDDER:
-		case OP_JUMP_NODE_SET_JUMPNODE_NAME: //CommanderDJ
+		case OP_JUMP_NODE_SET_JUMPNODE_NAME:
 		case OP_JUMP_NODE_SET_JUMPNODE_COLOR:
 		case OP_JUMP_NODE_SET_JUMPNODE_MODEL:
 		case OP_JUMP_NODE_SHOW_JUMPNODE:
