diff --git a/configure.ac.in b/configure.ac.in
index 844dfa032b8a7ddda352b4efcfb62e6815db9e52..e652db3e19eb62c494c61b564044956509cb7617 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -54,7 +54,7 @@ AC_CHECK_TOOL(LD, ld, :)
 dnl
 dnl Gettext stuff
 dnl
-ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
+ALL_LINGUAS="de en_GB fr it ja no ru nl pl se"
 AM_GNU_GETTEXT_VERSION(0.10.40)
 AM_GNU_GETTEXT
 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
diff --git a/modules/access/ftp.c b/modules/access/ftp.c
index 8683c4b67ff8f93a4a1189f3aeed55cc39f590bf..0bcfe0e23aca8837ed7130f568d2637cd345c2f8 100644
--- a/modules/access/ftp.c
+++ b/modules/access/ftp.c
@@ -2,7 +2,7 @@
  * ftp.c:
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: ftp.c,v 1.3 2002/12/18 14:17:09 sam Exp $
+ * $Id: ftp.c,v 1.4 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -336,7 +336,7 @@ static int Open( vlc_object_t *p_this )
     p_access->i_filesize = atoll( psz_arg + 4 );
 #else
     {
-        int64_t i_size;
+        int64_t i_size = 0;
         char    *psz_parser = psz_arg + 4;
 
         while( *psz_parser == ' ' ) psz_parser++;
diff --git a/modules/audio_filter/converter/a52tofloat32.c b/modules/audio_filter/converter/a52tofloat32.c
index 610640680eb983a53cfd939b55b69879aae841d8..5bef3fe12544db254b9d6192e729648c7f60b136 100644
--- a/modules/audio_filter/converter/a52tofloat32.c
+++ b/modules/audio_filter/converter/a52tofloat32.c
@@ -4,7 +4,7 @@
  *   (http://liba52.sf.net/).
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: a52tofloat32.c,v 1.9 2002/11/28 23:24:14 massiot Exp $
+ * $Id: a52tofloat32.c,v 1.10 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Gildas Bazin <gbazin@netcourrier.com>
  *          Christophe Massiot <massiot@via.ecp.fr>
@@ -144,6 +144,10 @@ static int Create( vlc_object_t * _p_filter )
         {
             p_sys->i_flags = A52_DOLBY;
         }
+        else if ( p_filter->input.i_original_channels == AOUT_CHAN_CENTER )
+        {
+            p_sys->i_flags = A52_MONO;
+        }
         else if ( p_filter->input.i_original_channels & AOUT_CHAN_DUALMONO )
         {
             p_sys->i_flags = A52_CHANNEL;
diff --git a/modules/gui/macosx/controls.m b/modules/gui/macosx/controls.m
index 8a28b4b793dc0666116ace5a8bacd9c932a0632d..2db12b74d56fb87673605db6f56675c3045e00e1 100644
--- a/modules/gui/macosx/controls.m
+++ b/modules/gui/macosx/controls.m
@@ -2,7 +2,7 @@
  * controls.m: MacOS X interface plugin
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: controls.m,v 1.2 2002/12/07 23:50:30 massiot Exp $
+ * $Id: controls.m,v 1.3 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
  *          Christophe Massiot <massiot@via.ecp.fr>
@@ -31,6 +31,7 @@
 
 #include <vlc/vlc.h>
 #include <vlc/intf.h>
+#include <vlc/aout.h>
 
 #include <Cocoa/Cocoa.h> 
 #include <CoreAudio/AudioHardware.h>
@@ -251,7 +252,7 @@
     p_intf->p_sys->b_mute = !p_intf->p_sys->b_mute;
     [o_mi setState: p_intf->p_sys->b_mute ? NSOnState : NSOffState];
 #else
-    OSStatus err;
+    int err;
     AudioDeviceID device;
     UInt32 ui_param_size;
 
@@ -376,7 +377,7 @@
         }
         else
         {
-            int i;
+            unsigned int i;
             int i_cat = [o_mi tag];
 
             vlc_mutex_lock( &p_input->stream.stream_lock );
@@ -409,16 +410,16 @@
 - (IBAction)toggleVar:(id)sender
 {
     NSMenuItem * o_mi = (NSMenuItem *)sender;
-    intf_thread_t * p_intf = [NSApp getIntf];
 
     if( [o_mi state] == NSOffState )
     {
         const char * psz_variable = (const char *)[o_mi tag];
-        char * psz_value = [[o_mi title] cString];
+        const char * psz_value = [[o_mi title] cString];
         vlc_object_t * p_object = (vlc_object_t *)
             [[o_mi representedObject] pointerValue];
         vlc_value_t val;
-        val.psz_string = psz_value;
+        /* psz_string sucks */
+        val.psz_string = (char *)psz_value;
 
         if ( var_Set( p_object, psz_variable, val ) < 0 )
         {
@@ -483,7 +484,7 @@
     }
     else if( [[o_mi title] isEqualToString: _NS("Mute")] )
     {
-        OSStatus err;
+        int err;
         UInt32 b_mute;
         AudioDeviceID device;
         UInt32 ui_param_size;
diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h
index 5ba5b5751349c09e76ad934cb0738ba5e03bfe5e..42a161c3d44d03278c67c1d1cfa7ab6166157909 100644
--- a/modules/gui/macosx/intf.h
+++ b/modules/gui/macosx/intf.h
@@ -2,7 +2,7 @@
  * intf.h: MacOS X interface plugin
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: intf.h,v 1.5 2002/12/08 23:38:02 massiot Exp $
+ * $Id: intf.h,v 1.6 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
  *          Christophe Massiot <massiot@via.ecp.fr>
@@ -76,7 +76,7 @@ struct intf_sys_t
     msg_subscription_t * p_sub;
 
     /* DVD mode */
-    int i_part;
+    unsigned int i_part;
 };
 
 /*****************************************************************************
diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index 30bdbf5d4f43a053723fb915c60d663a15af5740..e9142de1b0cdeed891e5fd362af6cc448ce45da6 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -2,7 +2,7 @@
  * intf.m: MacOS X interface plugin
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: intf.m,v 1.11 2002/12/24 23:00:51 massiot Exp $
+ * $Id: intf.m,v 1.12 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
  *          Christophe Massiot <massiot@via.ecp.fr>
@@ -533,7 +533,7 @@ static void Run( intf_thread_t *p_intf )
 
 - (void)setupMenus
 {
-    int i, i_nb_items;
+    unsigned int i, i_nb_items;
     NSMenuItem * o_item;
     NSString * o_menu_title;
     char psz_title[ 256 ];
@@ -772,7 +772,7 @@ static void Run( intf_thread_t *p_intf )
                       category:(int)i_cat
                       selector:(SEL)pf_callback
 {
-    int i, i_nb_items;
+    unsigned int i, i_nb_items;
     NSMenu * o_menu = [o_mi submenu];
     intf_thread_t * p_intf = [NSApp getIntf];
 
diff --git a/modules/gui/macosx/prefs.m b/modules/gui/macosx/prefs.m
index 417153baec87d6b89b3d705aec721d6c7898ac91..77dc505cad44ea0c8d019d93ad3cd9e230f8e534 100644
--- a/modules/gui/macosx/prefs.m
+++ b/modules/gui/macosx/prefs.m
@@ -2,7 +2,7 @@
  * prefs.m: MacOS X plugin for vlc
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: prefs.m,v 1.2 2002/12/13 01:56:30 gbazin Exp $
+ * $Id: prefs.m,v 1.3 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
  *
@@ -132,7 +132,7 @@
     int i_pos;
     int i_module_tag;
 
-    module_t *p_parser;
+    module_t *p_parser = NULL;
     vlc_list_t list;
     module_config_t *p_item;
     char *psz_module_name;
diff --git a/modules/gui/macosx/vout.m b/modules/gui/macosx/vout.m
index bfa24252ebf276cd814d3507714c10c007ccb870..f2b1b55844d05fd39cc7f9ed5a1284a7c8799037 100644
--- a/modules/gui/macosx/vout.m
+++ b/modules/gui/macosx/vout.m
@@ -2,7 +2,7 @@
  * vout.m: MacOS X video output plugin
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: vout.m,v 1.8 2002/12/24 23:00:51 massiot Exp $
+ * $Id: vout.m,v 1.9 2002/12/25 02:23:36 massiot Exp $
  *
  * Authors: Colin Delacroix <colin@zoy.org>
  *          Florian G. Pflug <fgp@phlo.org>
@@ -130,7 +130,7 @@ int E_(OpenVideo) ( vlc_object_t *p_this )
     p_vout->p_sys->h_img_descr = 
         (ImageDescriptionHandle)NewHandleClear( sizeof(ImageDescription) );
     p_vout->p_sys->p_matrix = (MatrixRecordPtr)malloc( sizeof(MatrixRecord) );
-    p_vout->p_sys->p_fullscreen_state;
+    p_vout->p_sys->p_fullscreen_state = NULL;
 
     p_vout->p_sys->b_mouse_pointer_visible = 1;
 
@@ -569,10 +569,10 @@ static int CoToggleFullscreen( vout_thread_t *p_vout )
 static void QTScaleMatrix( vout_thread_t *p_vout )
 {
     Rect s_rect;
-    int i_width, i_height;
+    unsigned int i_width, i_height;
     Fixed factor_x, factor_y;
-    int i_offset_x = 0;
-    int i_offset_y = 0;
+    unsigned int i_offset_x = 0;
+    unsigned int i_offset_y = 0;
 
     GetPortBounds( p_vout->p_sys->p_qdport, &s_rect );
 
@@ -983,7 +983,7 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
     }
     else
     {
-        int i_index = 0;
+        unsigned int i_index = 0;
         NSArray *o_screens = [NSScreen screens];
 
         if( !sscanf( val.psz_string, "Screen %d", &i_index ) ||
@@ -1001,8 +1001,11 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
 
     if( p_vout->b_fullscreen )
     {
+        NSRect screen_rect = [o_screen frame];
+        screen_rect.origin.x = screen_rect.origin.y = 0;
+
         [p_vout->p_sys->o_window 
-            initWithContentRect: [o_screen frame]
+            initWithContentRect: screen_rect
             styleMask: NSBorderlessWindowMask
             backing: NSBackingStoreBuffered
             defer: NO screen: o_screen];
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 40df7af80e3bf8e59ce47cc1dcc38d0ced610725..e486f3889595f2c83396553c0f30fb740113536f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -104,8 +104,11 @@ modules/gui/kde/interface.cpp
 modules/gui/kde/kde.cpp
 modules/gui/kde/messages.cpp
 modules/gui/kde/pluginsbox.cpp
-modules/gui/macosx/intf.h
-modules/gui/macosx/macosx.m
+modules/gui/macosx/intf.m
+modules/gui/macosx/prefs.m
+modules/gui/macosx/open.m
+modules/gui/macosx/playlist.m
+modules/gui/macosx/controls.m
 modules/gui/ncurses/ncurses.c
 modules/gui/qnx/qnx.c
 modules/gui/qt/qt.cpp
diff --git a/src/audio_output/common.c b/src/audio_output/common.c
index 92067cd37999be5652840a82225806482db0800b..755f00cb400c07139e3e111ce9a83e1cba315629 100644
--- a/src/audio_output/common.c
+++ b/src/audio_output/common.c
@@ -2,7 +2,7 @@
  * common.c : audio output management of common data structures
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: common.c,v 1.11 2002/12/07 23:50:30 massiot Exp $
+ * $Id: common.c,v 1.12 2002/12/25 02:23:37 massiot Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -168,6 +168,8 @@ const char * aout_FormatPrintChannels( const audio_sample_format_t * p_format )
             return "Dolby";
         else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO )
             return "Dual-mono";
+        else if ( p_format->i_original_channels == AOUT_CHAN_CENTER )
+            return "Mono";
         else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) )
             return "Stereo/Left";
         else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) )
@@ -200,6 +202,8 @@ const char * aout_FormatPrintChannels( const audio_sample_format_t * p_format )
             return "Dolby/LFE";
         else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO )
             return "Dual-mono/LFE";
+        else if ( p_format->i_original_channels == AOUT_CHAN_CENTER )
+            return "Mono/LFE";
         else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) )
             return "Stereo/Left/LFE";
         else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) )
diff --git a/src/audio_output/input.c b/src/audio_output/input.c
index a920cfbbc074f3a40db77cc6d7c7a97ebd3f5a99..6fc00fa81c50ed90c01a2d997808f4731c2d2ed5 100644
--- a/src/audio_output/input.c
+++ b/src/audio_output/input.c
@@ -2,7 +2,7 @@
  * input.c : internal management of input streams for the audio output
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: input.c,v 1.28 2002/12/22 17:08:42 sam Exp $
+ * $Id: input.c,v 1.29 2002/12/25 02:23:37 massiot Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -127,7 +127,8 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
     else
     {
         /* Create resamplers. */
-        intermediate_format.i_rate = (p_input->input.i_rate
+        intermediate_format.i_rate = (__MAX(p_input->input.i_rate,
+                                            p_aout->mixer.mixer.i_rate)
                                  * (100 + AOUT_MAX_RESAMPLING)) / 100;
         if ( intermediate_format.i_rate == p_aout->mixer.mixer.i_rate )
         {