diff -uN easytag-2.1.4.orig/src/misc.c easytag-2.1.4-2/src/misc.c
--- easytag-2.1.4.orig/src/misc.c	2007-12-09 11:57:33.000000000 -0500
+++ easytag-2.1.4-2/src/misc.c	2008-04-15 20:08:37.000000000 -0400
@@ -463,7 +463,7 @@
         /* Get the current date */
         memcpy(&t0, localtime(&t), sizeof(struct tm));
         /* Put the current year in 'current_year' tab */
-        sprintf(current_year,"%d",1900+t0.tm_year);
+        sprintf(current_year,"%04d",1900+t0.tm_year);
 
         tmp = &current_year[4-strlen(year)];
         if ( atoi(year) <= atoi(tmp) )
diff -uN easytag-2.1.4.orig/src/ogg_tag.c easytag-2.1.4-2/src/ogg_tag.c
--- easytag-2.1.4.orig/src/ogg_tag.c	2007-12-05 17:28:09.000000000 -0500
+++ easytag-2.1.4-2/src/ogg_tag.c	2008-04-22 16:52:01.000000000 -0400
@@ -271,6 +271,8 @@
     if ( (string = vorbis_comment_query(vc,"DATE",0)) != NULL && g_utf8_strlen(string, -1) > 0 )
     {
         FileTag->year = g_strdup(string);
+	if(g_utf8_strlen(FileTag->year, -1) > 4)
+		Log_Print(LOG_ERROR,_("Warning in %s :- Year of album %s seems to be invalid. The information will be lost while saving Tags."),filename_utf8,FileTag->year);
     }
 
     /*************************
@@ -564,6 +566,23 @@
 }
 
 
+static gboolean Ogg_Write_DelimeteredTag(vorbis_comment *vc,const gchar *tag,gchar *values){
+	gchar **strings = g_strsplit(values,MULTIFIELD_SEPARATOR,255);
+	unsigned int i=0;
+
+	for(i=0;i<g_strv_length(strings);i++)
+	{
+		if(strlen(strings[i])>0)
+		{
+        		char *string = g_strconcat(tag,strings[i],NULL);
+			vorbis_comment_add(vc,string);
+			g_free(string);
+		}
+	}
+        g_strfreev(strings);
+	return TRUE;
+}
+
 
 gboolean Ogg_Tag_Write_File_Tag (ET_File *ETFile)
 {
@@ -646,9 +665,7 @@
      *********/
     if ( FileTag->title )
     {
-        string = g_strconcat("TITLE=",FileTag->title,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"TITLE=",FileTag->title);
     }
 
     /**********
@@ -656,9 +673,7 @@
      **********/
     if ( FileTag->artist )
     {
-        string = g_strconcat("ARTIST=",FileTag->artist,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"ARTIST=",FileTag->artist);
     }
 
     /*********
@@ -666,9 +681,7 @@
      *********/
     if ( FileTag->album )
     {
-        string = g_strconcat("ALBUM=",FileTag->album,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"ALBUM=",FileTag->album);
     }
 
     /***************
@@ -712,9 +725,7 @@
      *********/
     if ( FileTag->genre )
     {
-        string = g_strconcat("GENRE=",FileTag->genre,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"GENRE=",FileTag->genre);
     }
 
     /***********
@@ -724,21 +735,17 @@
     if ( FileTag->comment )
     {
         // Format of new specification
-        string = g_strconcat("DESCRIPTION=",FileTag->comment,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"DESCRIPTION=",FileTag->comment);
+
 
         // Format used in winamp plugin
-        string = g_strconcat("COMMENT=",FileTag->comment,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"COMMENT=",FileTag->comment);
+
 
         if (OGG_TAG_WRITE_XMMS_COMMENT)
         {
             // Format used into xmms-1.2.5
-            string = g_strconcat("=",FileTag->comment,NULL);
-            vorbis_comment_add(vc,string);
-            g_free(string);
+		Ogg_Write_DelimeteredTag(vc,"=",FileTag->comment);
         }
     }
 
@@ -747,9 +754,7 @@
      ************/
     if ( FileTag->composer )
     {
-        string = g_strconcat("COMPOSER=",FileTag->composer,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"COMPOSER=",FileTag->composer);
     }
 
     /*******************
@@ -757,9 +762,7 @@
      *******************/
     if ( FileTag->orig_artist )
     {
-        string = g_strconcat("PERFORMER=",FileTag->orig_artist,NULL);
-        vorbis_comment_add(vc,string);
-        g_free(string);
+	Ogg_Write_DelimeteredTag(vc,"PERFORMER=",FileTag->orig_artist);
     }
