diff -urN taglib-svn/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp taglib-quasar/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp
--- taglib-svn/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp	2007-10-13 23:14:14.000000000 +0200
@@ -131,10 +131,13 @@
   }
 
   d->textEncoding = String::Type(data[0]);
+  int pos = 1;
 
-	int pos = 1;
+  d->mimeType = readStringField(data, String::Latin1, &pos);
+
+  d->type = Type(data[pos]);
+  pos += 1;
 
-	d->mimeType = readStringField(data, String::Latin1, &pos);
   d->description = readStringField(data, d->textEncoding, &pos);
 
   d->data = data.mid(pos);
diff -urN taglib-svn/taglib/mpeg/id3v2/frames/commentsframe.cpp taglib-quasar/taglib/mpeg/id3v2/frames/commentsframe.cpp
--- taglib-svn/taglib/mpeg/id3v2/frames/commentsframe.cpp	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/frames/commentsframe.cpp	2007-10-13 20:50:44.000000000 +0200
@@ -117,7 +117,7 @@
       it != comments.end();
       ++it)
   {
-    CommentsFrame *frame = dynamic_cast<CommentsFrame *>(*it);
+    CommentsFrame *frame = static_cast<CommentsFrame *>(*it);
     if(frame && frame->description() == d)
       return frame;
   }
diff -urN taglib-svn/taglib/mpeg/id3v2/frames/textidentificationframe.cpp taglib-quasar/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
--- taglib-svn/taglib/mpeg/id3v2/frames/textidentificationframe.cpp	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/frames/textidentificationframe.cpp	2007-10-13 22:02:47.000000000 +0200
@@ -241,7 +241,7 @@
 {
   FrameList l = tag->frameList("TXXX");
   for(FrameList::Iterator it = l.begin(); it != l.end(); ++it) {
-    UserTextIdentificationFrame *f = dynamic_cast<UserTextIdentificationFrame *>(*it);
+    UserTextIdentificationFrame *f = static_cast<UserTextIdentificationFrame *>(*it);
     if(f && f->description() == description)
       return f;
   }
diff -urN taglib-svn/taglib/mpeg/id3v2/id3v2frame.cpp taglib-quasar/taglib/mpeg/id3v2/id3v2frame.cpp
--- taglib-svn/taglib/mpeg/id3v2/id3v2frame.cpp	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/id3v2frame.cpp	2007-10-13 23:14:33.000000000 +0200
@@ -194,6 +194,8 @@
 
   if(!position)
     position = &start;
+  else
+    start = *position;
 
   ByteVector delimiter = textDelimiter(encoding);
 
@@ -204,7 +206,7 @@
 
   *position = end + delimiter.size();
 
-  return String(data.mid(*position, end - *position), encoding);
+  return String(data.mid(start, end - start), encoding);
 }
 
 
diff -urN taglib-svn/taglib/mpeg/id3v2/id3v2frame.h taglib-quasar/taglib/mpeg/id3v2/id3v2frame.h
--- taglib-svn/taglib/mpeg/id3v2/id3v2frame.h	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/id3v2frame.h	2007-10-13 21:00:07.000000000 +0200
@@ -185,9 +185,9 @@
       ByteVector fieldData(const ByteVector &frameData) const;
 
       /*!
-       * Reads a String of type \a encodiong from the ByteVector \a data.  If \a
+       * Reads a String of type \a encoding from the ByteVector \a data.  If \a
        * position is passed in it is used both as the starting point and is
-       * updated to replect the position just after the string that has been read.
+       * updated to reflect the position just after the string that has been read.
        * This is useful for reading strings sequentially.
        */
       String readStringField(const ByteVector &data, String::Type encoding,
diff -urN taglib-svn/taglib/mpeg/id3v2/id3v2tag.cpp taglib-quasar/taglib/mpeg/id3v2/id3v2tag.cpp
--- taglib-svn/taglib/mpeg/id3v2/id3v2tag.cpp	2007-10-13 21:56:29.000000000 +0200
+++ taglib-quasar/taglib/mpeg/id3v2/id3v2tag.cpp	2007-10-13 20:50:44.000000000 +0200
@@ -129,7 +129,7 @@
   // the behavior the same as released versions it is being left with " ".
 
   if(d->frameListMap["TCON"].isEmpty() ||
-     !dynamic_cast<TextIdentificationFrame *>(d->frameListMap["TCON"].front()))
+     !static_cast<TextIdentificationFrame *>(d->frameListMap["TCON"].front()))
   {
     return String::null;
   }
diff -urN taglib-svn/taglib/toolkit/tbytevector.h taglib-quasar/taglib/toolkit/tbytevector.h
--- taglib-svn/taglib/toolkit/tbytevector.h	2007-10-13 21:56:27.000000000 +0200
+++ taglib-quasar/taglib/toolkit/tbytevector.h	2007-10-13 20:50:41.000000000 +0200
@@ -30,7 +30,7 @@
 #include "taglib_export.h"
 
 #include <vector>
-#include <ostream>
+#include <iostream>
 
 namespace TagLib {
 
diff -urN taglib-svn/taglib/toolkit/tstring.h taglib-quasar/taglib/toolkit/tstring.h
--- taglib-svn/taglib/toolkit/tstring.h	2007-10-13 21:56:27.000000000 +0200
+++ taglib-quasar/taglib/toolkit/tstring.h	2007-10-13 20:50:41.000000000 +0200
@@ -31,7 +31,7 @@
 #include "tbytevector.h"
 
 #include <string>
-#include <ostream>
+#include <iostream>
 
 /*!
  * \relates TagLib::String
