Index: apps/metadata.c
===================================================================
--- apps/metadata.c	(revision 12545)
+++ apps/metadata.c	(working copy)
@@ -208,6 +208,7 @@
 {
     long len = 0;
     char** p;
+    int i;
 
     if ((((strcasecmp(name, "track") == 0) && (type == TAGTYPE_APE)))
         || ((strcasecmp(name, "tracknumber") == 0) && (type == TAGTYPE_VORBIS)))
@@ -218,14 +219,14 @@
     else if (((strcasecmp(name, "year") == 0) && (type == TAGTYPE_APE))
         || ((strcasecmp(name, "date") == 0) && (type == TAGTYPE_VORBIS)))
     {
-        /* Date can be in more any format in a Vorbis tag, so don't try to 
-         * parse it. 
+        /* Date's can be in any format in Vorbis. However most of them 
+         * are in ISO8601 format so if we try and parse the first part
+         * of the tag as a number, we should get the year. 
          */
-        if (type != TAGTYPE_VORBIS)
-        {
-            id3->year = atoi(value);
+        id3->year = atoi(value);
+        if (id3->year < 1900) { /* yeah, not likely */
+            id3->year = 0;
         }
-        
         p = &(id3->year_string);
     }
     else if (strcasecmp(name, "title") == 0)
