diff -uNr vlc-trunk/modules/video_filter/marq.c vlc-trunk.lincor/modules/video_filter/marq.c
--- vlc-trunk/modules/video_filter/marq.c	2005-10-13 14:51:50.000000000 +0100
+++ vlc-trunk.lincor/modules/video_filter/marq.c	2005-10-28 15:41:25.000000000 +0100
@@ -2,7 +2,7 @@
  * marq.c : marquee display video plugin for vlc
  *****************************************************************************
  * Copyright (C) 2003-2005 the VideoLAN team
- * $Id: marq.c 12821 2005-10-11 17:16:13Z zorglub $
+ * $Id: marq.c 12412 2005-08-27 16:40:23Z jpsaman $
  *
  * Authors: Mark Moriarty
  *
@@ -115,21 +115,19 @@
     set_callbacks( CreateFilter, DestroyFilter );
     set_category( CAT_VIDEO );
     set_subcategory( SUBCAT_VIDEO_SUBPIC );
-    add_string( "marq-marquee", "VLC", NULL, MSG_TEXT, MSG_LONGTEXT,
-                VLC_FALSE );
+    add_string( "marq-marquee", "Marquee", NULL, MSG_TEXT, MSG_LONGTEXT, VLC_FALSE );
 
     set_section( N_("Position"), NULL );
-    add_integer( "marq-x", -1, NULL, POSX_TEXT, POSX_LONGTEXT, VLC_TRUE );
-    add_integer( "marq-y", 0, NULL, POSY_TEXT, POSY_LONGTEXT, VLC_TRUE );
-    add_integer( "marq-position", 5, NULL, POS_TEXT, POS_LONGTEXT, VLC_FALSE );
+    add_integer( "marq-x", -1, NULL, POSX_TEXT, POSX_LONGTEXT, VLC_FALSE );
+    add_integer( "marq-y", 0, NULL, POSY_TEXT, POSY_LONGTEXT, VLC_FALSE );
+    add_integer( "marq-position", 5, NULL, POS_TEXT, POS_LONGTEXT, VLC_TRUE );
 
     set_section( N_("Font"), NULL );
     /* 5 sets the default to top [1] left [4] */
     change_integer_list( pi_pos_values, ppsz_pos_descriptions, 0 );
     add_integer_with_range( "marq-opacity", 255, 0, 255, NULL,
         OPACITY_TEXT, OPACITY_LONGTEXT, VLC_FALSE );
-    add_integer( "marq-color", 0xFFFFFF, NULL, COLOR_TEXT, COLOR_LONGTEXT,
-                  VLC_FALSE );
+    add_integer( "marq-color", 0xFFFFFF, NULL, COLOR_TEXT, COLOR_LONGTEXT, VLC_TRUE );
         change_integer_list( pi_color_values, ppsz_color_descriptions, 0 );
     add_integer( "marq-size", -1, NULL, SIZE_TEXT, SIZE_LONGTEXT, VLC_FALSE );
 
@@ -203,15 +201,23 @@
     filter_sys_t *p_sys = p_filter->p_sys;
     vlc_object_t *p_input;
 
-    if( p_sys->psz_marquee ) free( p_sys->psz_marquee );
-    free( p_sys );
-
     /* Delete the marquee variables */
     p_input = vlc_object_find( p_this, VLC_OBJECT_INPUT, FIND_ANYWHERE );
     if( !p_input )
     {
         return;
     }
+
+    var_DelCallback( p_input->p_libvlc, "marq-x", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-y", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-marquee", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-timeout", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-position", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-color", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-opacity", MarqueeCallback, p_sys );
+    var_DelCallback( p_input->p_libvlc, "marq-size", MarqueeCallback, p_sys );
+
+
     var_Destroy( p_input->p_libvlc , "marq-marquee" );
     var_Destroy( p_input->p_libvlc , "marq-x" );
     var_Destroy( p_input->p_libvlc , "marq-y" );
@@ -306,6 +312,7 @@
     {
         if( p_sys->psz_marquee ) free( p_sys->psz_marquee );
         p_sys->psz_marquee = strdup( newval.psz_string );
+
     }
     else if ( !strncmp( psz_var, "marq-x", 6 ) )
     {
