Index: code/autopilot/autopilot.cpp
===================================================================
--- code/autopilot/autopilot.cpp	(revision 9416)
+++ code/autopilot/autopilot.cpp	(working copy)
@@ -1447,7 +1447,7 @@
 	// Create the NavPoint struct
 	NavPoint tnav;
 
-	strncpy(tnav.m_NavName, Nav, 32);
+	strncpy(tnav.m_NavName, Nav, TOKEN_LENGTH);
 	tnav.flags = NP_WAYPOINT | flags;
 
 	Assert(!(tnav.flags & NP_SHIP));
Index: code/parse/sexp.cpp
===================================================================
--- code/parse/sexp.cpp	(revision 9418)
+++ code/parse/sexp.cpp	(working copy)
@@ -18292,12 +18292,13 @@
 				if (oswpt.team == Player_ship->team) {
 					add_for_this_player = true; 
 				}
+				break;
 
 			case OSWPT_TYPE_SHIP:
 				if (oswpt.shipp == Player_ship) {
 					add_for_this_player = true; 
 				}
-
+				break;
 			case OSWPT_TYPE_WING:
 				for ( i = 0; i < oswpt.wingp->current_count; i++) {
 					if (Ships[oswpt.wingp->ship_index[i]].objnum == Player_ship->objnum) {
@@ -18305,15 +18306,14 @@
 					}
 				}
 
-			// for all other oswpt types we simply return
+
+			// for all other oswpt types we simply ignore this
 			default:
-				return;
+				break;
 		}
 	}
-
-	if (add_for_this_player) {		
-		AddNav_Waypoint(nav, WP_path, vert, 0);
-	}
+	
+	AddNav_Waypoint(nav, WP_path, vert, add_for_this_player ? 0 : NP_HIDDEN);
 }
 
 
@@ -26405,7 +26405,7 @@
 			else if (argnum==2)
 				return OPF_POSITIVE;
 			else 
-				return OPF_SHIP_WING_POINT;
+				return OPF_SHIP_WING_TEAM;
 
 		case OP_NAV_ADD_SHIP:		//kazan
 			if (argnum==0)
