diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp
index 11b5715a8bab95032eb1d2bf6ef582226e14b2e2..e55f92e059962bc29947f4d0ec4d4c83be4f7e48 100644
--- a/modules/gui/qt4/menus.cpp
+++ b/modules/gui/qt4/menus.cpp
@@ -54,6 +54,7 @@
 #include <QSignalMapper>
 #include <QSystemTrayIcon>
 #include <QStatusBar>
+#include <QFontMetrics>
 
 /*
   This file defines the main menus and the pop-up menu (right-click menu)
@@ -1486,11 +1487,16 @@ void QVLCMenu::updateRecents( intf_thread_t *p_intf )
         {
             for( int i = 0; i < l.size(); ++i )
             {
+                char *psz_temp = decode_URI_duplicate( qtu( l.at( i ) ) );
+
                 action = recentsMenu->addAction(
-                        QString( "&%1: " ).arg( i + 1 ) + l.at( i ),
+                        QString( "&%1: " ).arg( i + 1 ) +
+                            QApplication::fontMetrics().elidedText( psz_temp, Qt::ElideLeft, 400 ),
                         rmrl->signalMapper, SLOT( map() ),
                         i <= 9 ? QString( "Ctrl+%1" ).arg( i + 1 ) : "" );
                 rmrl->signalMapper->setMapping( action, l.at( i ) );
+
+                free( psz_temp );
             }
 
             recentsMenu->addSeparator();