diff -ur -x '*.lo' -x '*.o' -x config.h -x config.log libid3tag-0.15.1b/file.c libid3tag-0.15.1b-fixed/file.c
--- libid3tag-0.15.1b/file.c	2004-01-23 12:41:32.000000000 +0300
+++ libid3tag-0.15.1b-fixed/file.c	2005-05-24 23:34:08.000000000 +0400
@@ -37,6 +37,10 @@
 #  include <assert.h>
 # endif
 
+# ifdef HAVE_SYS_STAT_H
+#  include <sys/stat.h>
+# endif
+
 # include "id3tag.h"
 # include "file.h"
 # include "tag.h"
@@ -575,6 +579,10 @@
 int v2_write(struct id3_file *file,
 	     id3_byte_t const *data, id3_length_t length)
 {
+  struct stat st;
+  char *buffer;
+  id3_length_t datalen, offset;
+  
   assert(!data || length > 0);
 
   if (data &&
@@ -592,9 +600,25 @@
   }
 
   /* hard general case: rewrite entire file */
+  if (stat(file->path, &st) == -1)
+    return -1;
 
-  /* ... */
+  offset = file->tags ? file->tags[0].length : 0;
+  datalen = st.st_size - offset;
+  if ((buffer = (char *) malloc(datalen)) == NULL)
+    return -1;
 
+  if (fseek(file->iofile, offset, SEEK_SET) == -1 ||
+      fread(buffer, datalen, 1, file->iofile) != 1 ||
+      fseek(file->iofile, 0, SEEK_SET) == -1 ||
+      fwrite(data, length, 1, file->iofile) != 1 ||
+      fwrite(buffer, datalen, 1, file->iofile) != 1 ||
+      fflush(file->iofile) == EOF) {
+    free(buffer);
+    return -1;
+  }
+  free(buffer);
+  
  done:
   return 0;
 }
