diff --git a/modules/gui/qt4/recents.cpp b/modules/gui/qt4/recents.cpp
index 5112c99f7f0d09efb9d7c36a8067b4707bfbaad7..dd4c57d31bb59e6e37cbe3fb187df4c03d474f6d 100644
--- a/modules/gui/qt4/recents.cpp
+++ b/modules/gui/qt4/recents.cpp
@@ -31,6 +31,7 @@
 #include <QSettings>
 #include <QRegExp>
 #include <QSignalMapper>
+#include <QFontMetrics>
 
 #ifdef WIN32
     #include <shlobj.h>
@@ -42,7 +43,7 @@
         SHARD_APPIDINFOIDLIST   = 0x00000005,
         SHARD_LINK              = 0x00000006,
         SHARD_APPIDINFOLINK     = 0x00000007,
-        SHARD_SHELLITEM         = 0x00000008 
+        SHARD_SHELLITEM         = 0x00000008
     } SHARD; */
     #define SHARD_PATHW 0x00000003
 #endif
@@ -90,8 +91,9 @@ void RecentsMRL::addRecent( const QString &mrl )
     /* Add to the Windows 7 default list in taskbar */
     SHAddToRecentDocs( SHARD_PATHW, qtu( mrl ) );
 #endif
+    QString mrl2 = QApplication::fontMetrics().elidedText( mrl, Qt::ElideLeft, 400 );
 
-    int i_index = stack->indexOf( mrl );
+    int i_index = stack->indexOf( mrl2 );
     if( 0 <= i_index )
     {
         /* move to the front */
@@ -99,7 +101,7 @@ void RecentsMRL::addRecent( const QString &mrl )
     }
     else
     {
-        stack->prepend( mrl );
+        stack->prepend( mrl2 );
         if( stack->size() > RECENTS_LIST_SIZE )
             stack->takeLast();
     }