diff --git a/taglib/toolkit/tstring.cpp b/taglib/toolkit/tstring.cpp
index 0151f784..603455a1 100644
--- a/taglib/toolkit/tstring.cpp
+++ b/taglib/toolkit/tstring.cpp
@@ -457,8 +457,7 @@ ByteVector String::data(Type t) const
       ByteVector v(2 + size() * 2, 0);
       char *p = v.data();
 
-      // Assume that if we're doing UTF16 and not UTF16BE that we want little
-      // endian encoding.  (Byte Order Mark)
+      // We use little-endian encoding here and need a BOM.
 
       *p++ = '\xff';
       *p++ = '\xfe';
diff --git a/taglib/toolkit/tstring.h b/taglib/toolkit/tstring.h
index 2cff5a4b..76e4c32f 100644
--- a/taglib/toolkit/tstring.h
+++ b/taglib/toolkit/tstring.h
@@ -163,7 +163,6 @@ namespace TagLib {
      */
     String(wchar_t c, Type t = Latin1);
 
-
     /*!
      * Makes a deep copy of the data in \a s.
      *
@@ -173,7 +172,7 @@ namespace TagLib {
     String(const char *s, Type t = Latin1);
 
     /*!
-     * Makes a deep copy of the data in \a s.
+     * Makes a deep copy of the data in \a v.
      *
      * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
      * used with other codecs it will simply print a warning and exit.
@@ -334,6 +333,9 @@ namespace TagLib {
      * UTF8, this will return a vector of 8 bit characters, otherwise it will use
      * 16 bit characters.
      *
+     * \note If \a t is UTF16, the returned data is encoded in little-endian
+     * format and has a BOM.
+     *
      * \note The returned data is not null terminated.
      */
     ByteVector data(Type t) const;