diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c
index c96a32179d..84204e3056 100644
--- a/menu/drivers/materialui.c
+++ b/menu/drivers/materialui.c
@@ -171,6 +171,8 @@ typedef struct materialui_handle
 
    char *box_message;
 
+   char menu_title[255];
+
    struct
    {
       menu_texture_item bg;
@@ -1063,7 +1065,6 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
    menu_animation_ctx_ticker_t ticker;
    menu_display_ctx_draw_t draw;
    char msg[255];
-   char title[255];
    char title_buf[255];
    char title_msg[255];
 
@@ -1168,7 +1169,7 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
 
    mui->frame_count++;
 
-   msg[0] = title[0] = title_buf[0] = title_msg[0] = '\0';
+   msg[0] = title_buf[0] = title_msg[0] = '\0';
 
    switch (video_info->materialui_color_theme)
    {
@@ -1384,8 +1385,6 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
       }
    }
 
-   menu_entries_get_title(title, sizeof(title));
-
    selection = menu_navigation_get_selection();
 
    if (background_rendered || libretro_running)
@@ -1522,7 +1521,7 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
    ticker.s        = title_buf;
    ticker.len      = ticker_limit;
    ticker.idx      = mui->frame_count / 100;
-   ticker.str      = title;
+   ticker.str      = mui->menu_title;
    ticker.selected = true;
 
    menu_animation_ticker(&ticker);
@@ -1685,6 +1684,8 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
    mui->cursor_size  = scale_factor / 3;
    mui->need_compute = false;
 
+   mui->menu_title[0] = '\0';
+
    return menu;
 error:
    if (menu)
@@ -1845,6 +1846,7 @@ static void materialui_populate_entries(
    if (!mui)
       return;
 
+   menu_entries_get_title(mui->menu_title, sizeof(mui->menu_title));
    mui->need_compute = true;
    mui->scroll_y = materialui_get_scroll(mui);
 }
diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c
index 224e6bc9fc..1596cd2d3b 100644
--- a/menu/drivers/rgui.c
+++ b/menu/drivers/rgui.c
@@ -427,6 +427,7 @@ typedef struct
    uint32_t thumbnail_queue_size;
    bool show_wallpaper;
    char theme_preset_path[PATH_MAX_LENGTH]; /* Must be a fixed length array... */
+   char menu_title[255]; /* Must be a fixed length array... */
    struct scaler_ctx image_scaler;
 } rgui_t;
 
@@ -1616,20 +1617,17 @@ static void rgui_render(void *data, bool is_idle)
    else
    {
       /* No thumbnail - render usual text */
-      char title[255];
       char title_buf[255];
       unsigned timedate_x = RGUI_TERM_WIDTH(fb_width) * FONT_WIDTH_STRIDE - RGUI_TERM_START_X(fb_width);
       unsigned core_name_len = ((timedate_x - RGUI_TERM_START_X(fb_width)) / FONT_WIDTH_STRIDE) - 3;
       bool show_core_name = settings->bools.menu_core_enable;
 
       /* Print title */
-      title[0] = title_buf[0] = '\0';
-
-      menu_entries_get_title(title, sizeof(title));
+      title_buf[0] = '\0';
 
       ticker.s        = title_buf;
       ticker.len      = RGUI_TERM_WIDTH(fb_width) - 10;
-      ticker.str      = title;
+      ticker.str      = rgui->menu_title;
       ticker.selected = true;
 
       menu_animation_ticker(&ticker);
@@ -1844,6 +1842,8 @@ static void *rgui_init(void **userdata, bool video_is_threaded)
 
    *userdata              = rgui;
 
+   rgui->menu_title[0] = '\0';
+
    /* Prepare RGUI colors, to improve performance */
    rgui->theme_preset_path[0] = '\0';
    prepare_rgui_colors(rgui, settings);
@@ -2081,7 +2081,6 @@ static void rgui_update_thumbnail_content(void *userdata)
 {
    rgui_t *rgui = (rgui_t*)userdata;
    playlist_t *playlist = NULL;
-   char title[255];
    size_t selection = menu_navigation_get_selection();
 
    if (!rgui)
@@ -2090,11 +2089,9 @@ static void rgui_update_thumbnail_content(void *userdata)
    /* Check whether current selection is a playlist entry
     * (i.e. whether we should be looking for a thumbnail image) */
    rgui->is_playlist_entry = false;
-   title[0] = '\0';
-   menu_entries_get_title(title, sizeof(title));
    if (!string_is_empty(rgui->thumbnail_playlist))
    {
-      if (string_is_equal(path_basename(title), rgui->thumbnail_playlist))
+      if (string_is_equal(path_basename(rgui->menu_title), rgui->thumbnail_playlist))
       {
          /* Get label of currently selected playlist entry
           * > This is pretty nasty, but I can't see any other way of doing
@@ -2212,6 +2209,12 @@ static void rgui_populate_entries(void *data,
       const char *path,
       const char *label, unsigned k)
 {
+   rgui_t *rgui = (rgui_t*)data;
+   
+   if (!rgui)
+      return;
+   
+   menu_entries_get_title(rgui->menu_title, sizeof(rgui->menu_title));
    rgui_navigation_set(data, true);
 }