diff --git a/src/views.js b/src/views.js
index 8f87d83..7df37fb 100644
--- a/src/views.js
+++ b/src/views.js
@@ -665,6 +665,13 @@ export async function loadAlbumDetail(album) {
const songs = r.album?.song || [];
const totalMin = Math.round(songs.reduce((s,t) => s+(t.duration||0), 0) / 60);
document.getElementById('album-detail-stats').textContent = `${songs.length} Titel · ${r.album.year||''} · ${totalMin} Min.`;
+ // Re-render header after songs load — by now overrides cache is ready and songs carry sortAlbum/sortArtist
+ if (songs[0]) {
+ document.getElementById('album-detail-name').textContent = dispAlbum(songs[0]) || dispAlbumName(album.name);
+ artistEl.innerHTML = parseArtists(songs[0])
+ .map(a => `${esc(dispArtistById(a.id, a.name))}`)
+ .join(' • ') || '';
+ }
document.getElementById('btn-play-album').onclick = () => playQueue(songs, 0);
document.getElementById('btn-dl-album').onclick = () => {
songs.forEach((s,i) => setTimeout(() => dlSongLocal(s), i*400));
@@ -1005,7 +1012,7 @@ export async function doLocalSearch(q, el) {
const s = mkSection('Künstler');
const g = document.createElement('div'); g.className = 'scroll-row';
artists.forEach(a => {
- const c = makeCard(a.name, a.albumCount+' Alben', null, '🎤');
+ const c = makeCard(dispArtistById(a.id, a.name), a.albumCount+' Alben', null, '🎤');
c.classList.add('artist-card');
c.onclick = () => navigate('artist-detail', a);
g.appendChild(c);