diff -Naur MPlayer-0.90.orig/input/input.c MPlayer-0.90/input/input.c
--- MPlayer-0.90.orig/input/input.c	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/input/input.c	2003-05-23 00:25:03.000000000 +0200
@@ -84,6 +84,7 @@
   { MP_CMD_VO_FULLSCREEN, "vo_fullscreen", 0, { {-1,{0}} } },
   { MP_CMD_SCREENSHOT, "screenshot", 0, { {-1,{0}} } },
   { MP_CMD_PANSCAN, "panscan",1,  { {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
+  { MP_CMD_SWITCH_VSYNC, "switch_vsync", 0, { {-1,{0}} } },
   { MP_CMD_LOADFILE, "loadfile", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
   { MP_CMD_LOADLIST, "loadlist", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
   { MP_CMD_VF_CHANGE_RECTANGLE, "change_rectangle", 2, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}}}},
diff -Naur MPlayer-0.90.orig/input/input.h MPlayer-0.90/input/input.h
--- MPlayer-0.90.orig/input/input.h	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/input/input.h	2003-05-23 00:14:46.000000000 +0200
@@ -43,6 +43,8 @@
 #define MP_CMD_SUB_ALIGNMENT 39
 #define MP_CMD_TV_LAST_CHANNEL 40
 
+#define MP_CMD_SWITCH_VSYNC 45
+
 #define MP_CMD_GUI_EVENTS       5000
 #define MP_CMD_GUI_LOADFILE     5001
 #define MP_CMD_GUI_LOADSUBTITLE 5002
diff -Naur MPlayer-0.90.orig/mplayer.c MPlayer-0.90/mplayer.c
--- MPlayer-0.90.orig/mplayer.c	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/mplayer.c	2003-05-23 00:21:50.000000000 +0200
@@ -2684,6 +2684,9 @@
 	tv_step_chanlist((tvi_handle_t*)(demuxer->priv));
     } break;
 #endif
+    case MP_CMD_SWITCH_VSYNC:  {
+      vo_vsync = !vo_vsync;
+    } break;
     case MP_CMD_VO_FULLSCREEN:
     {
 #ifdef HAVE_NEW_GUI
