--- amarok-1.4.3/amarok/src/xmlloader.cpp 2006-09-05 05:42:40 +0300 +++ amarok-1.4.3.patched/amarok/src/xmlloader.cpp 2006-09-28 00:33:27 +0300 @@ -191,8 +191,7 @@ { if( m_currentElement.isNull() ) return true; - - newTag( m_currentElement, ch ); + newTag( m_currentElement, KURL::decode_string( ch ) ); return true; } --- amarok-1.4.3/amarok/src/playlistloader.cpp 2006-09-05 05:42:40 +0300 +++ amarok-1.4.3.patched/amarok/src/playlistloader.cpp 2006-09-28 10:56:09 +0300 @@ -1056,7 +1056,7 @@ else if( atts.localName( i ) == "version" ) version = atts.value( i ); else if( atts.localName( i ) == "dynamicMode" ) - dynamic = atts.value( i ); + dynamic = KURL::decode_string( atts.value( i ) ); } emit playlistInfo( product, version, dynamic ); return !m_aborted; --- amarok-1.4.5/amarok/src/playlist.cpp.orig 2007-02-06 09:57:44 +0300 +++ amarok-1.4.5/amarok/src/playlist.cpp 2007-02-06 10:12:30 +0300 @@ -3089,7 +3089,7 @@ const QString title = ( dynamicMode()->title() ).replace( "&", "&" ) .replace( "<", "<" ) .replace( ">", ">" ); - dynamic = QString(" dynamicMode=\"%1\"").arg( title ); + dynamic = QString(" dynamicMode=\"%1\"").arg( KURL::encode_string(title) ); } stream << QString( "\n" ) .arg( "Amarok" ).arg( Amarok::xmlVersion() ).arg( dynamic );