Index: apps/metadata.c
===================================================================
RCS file: /cvsroot/rockbox/apps/metadata.c,v
retrieving revision 1.47
diff -u -r1.47 metadata.c
--- apps/metadata.c	18 Jul 2006 18:52:23 -0000	1.47
+++ apps/metadata.c	25 Jul 2006 22:00:38 -0000
@@ -22,6 +22,7 @@
 #include <ctype.h>
 #include <inttypes.h>
 
+#include "rbunicode.h"
 #include "metadata.h"
 #include "mp3_playback.h"
 #include "logf.h"
@@ -1273,14 +1275,14 @@
 
 static bool get_sid_metadata(int fd, struct mp3entry* id3)
 {    
-    /* Use the trackname part of the id3 structure as a temporary buffer */
-    unsigned char* buf = id3->path;    
+    /* Use the path name of the id3 structure as a temporary buffer. */
+    unsigned char* buf = id3->path;
     int read_bytes;
     char *p;
     
 
     if ((lseek(fd, 0, SEEK_SET) < 0) 
-        || ((read_bytes = read(fd, buf, sizeof(id3->path))) < 44))
+         || ((read_bytes = read(fd, buf, 0x80)) < 0x80))
     {
         return false;
     }
@@ -1293,14 +1295,19 @@
     p = id3->id3v2buf;
 
     /* Copy Title */
-    strcpy(p, &buf[0x16]);
     id3->title = p;
-    p += strlen(p)+1;
+    p = iso_decode(&buf[0x16], p, 0, strlen(&buf[0x16])+1);
 
     /* Copy Artist */
-    strcpy(p, &buf[0x36]);
     id3->artist = p;
-    p += strlen(p)+1;
+    p = iso_decode(&buf[0x36], p, 0, strlen(&buf[0x36])+1);
+
+    /* Copy Year */
+    id3->year = atoi(&buf[0x56]);
+
+    /* Copy Album */
+    id3->album = p;
+    p = iso_decode(&buf[0x5b], p, 0, strlen(&buf[0x5b])+1);
 
     id3->bitrate = 706;
     id3->frequency = 44100;
