diff --git a/src/Navaids/nav.hxx b/src/Navaids/nav.hxx
index a845e31ca..23e1fc015 100644
--- a/src/Navaids/nav.hxx
+++ b/src/Navaids/nav.hxx
@@ -143,8 +143,8 @@ operator >> ( istream& in, FGNav& n )
 	int var;
 	sscanf(magvar_s.c_str(), "%d%c", &var, &direction);
 	n.magvar = var;
-	if (direction == 'E')
-	    n.magvar = 0 - n.magvar;
+	if (direction == 'W')
+	    n.magvar = -n.magvar;
 	// cout << "Explicit magvar of " << n.magvar << endl;
     }
     // cout << n.ident << " " << n.magvar << endl;