--- a/config.h.cmake
+++ b/config.h.cmake
@@ -1,6 +1,7 @@
 #cmakedefine VERSION "@VERSION@"
 
 // poppler-tqt
+#cmakedefine HAVE_POPPLER_2402
 #cmakedefine HAVE_POPPLER_2203
 #cmakedefine HAVE_POPPLER_2112
 #cmakedefine HAVE_POPPLER_2111
--- a/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake
+++ b/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake
@@ -24,7 +24,7 @@ check_cxx_source_compiles("
   HAVE_POPPLER_030 )
 tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
 
-foreach( _poppler_ver 0.58 0.64 0.70 0.71 0.72 0.76 0.82 0.83 0.86 21.08 21.11 21.12 22.03 )
+foreach( _poppler_ver 0.58 0.64 0.70 0.71 0.72 0.76 0.82 0.83 0.86 21.08 21.11 21.12 22.03 24.02 )
   string( REPLACE "." "" _poppler_str "${_poppler_ver}" )
   if( NOT DEFINED HAVE_POPPLER_${_poppler_str} )
     message( STATUS "Performing Test HAVE_POPPLER_${_poppler_str}" )
--- a/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cpp
+++ b/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cpp
@@ -101,9 +101,15 @@ void DocumentData::addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, O
 
         // 1. create element using outlineItem's title as tagName
         TQString name;
+#ifdef HAVE_POPPLER_2402
+        const std::vector<Unicode> &uVec = outlineItem->getTitle();
+        name = unicodeToTQString( uVec.data(), uVec.size() );
+#else
         CONST_064 Unicode * uniChar = outlineItem->getTitle();
         int titleLength = outlineItem->getTitleLength();
         name = unicodeToTQString(uniChar, titleLength);
+#endif
+
         if ( name.isEmpty() )
             continue;
 
