Index: src/TagLib/Tag.cs
===================================================================
--- src/TagLib/Tag.cs	(revision 118913)
+++ src/TagLib/Tag.cs	(working copy)
@@ -174,6 +174,28 @@
 		}
 		
 		/// <summary>
+		///    Gets and sets the sort names of the performers or artists
+		///    who performed in the media described by the current instance.
+		/// </summary>
+		/// <value>
+		///    A <see cref="string[]" /> containing the sort names for
+		///    the performers or artists who performed in the media
+		///    described by the current instance, or an empty array if
+		///    no value is present. 
+		/// </value>
+		/// <remarks>
+		///    <para>This is used to provide more control over how tracks
+		///    are sorted. Typical uses are to skip common prefixes or
+		///    sort by last name. For example, "The Beatles" might be
+		///    sorted as "Beatles, The".
+		///    </para>
+		/// </remarks>
+		public virtual string [] PerformersSort {
+			get {return new string [] {};}
+			set {}
+		}
+		
+		/// <summary>
 		///    Gets and sets the band or artist who is credited in the
 		///    creation of the entire album or collection containing the
 		///    media described by the current instance.
@@ -204,6 +226,14 @@
 		}
 		
 		/// <summary>
+		///    See AlbumArtists and PerformersSort
+		/// </summary>
+		public virtual string [] AlbumArtistsSort {
+			get {return new string [] {};}
+			set {}
+		}
+		
+		/// <summary>
 		///    Gets and sets the composers of the media represented by
 		///    the current instance.
 		/// </summary>
@@ -567,6 +597,10 @@
 			get {return FirstInGroup(AlbumArtists);}
 		}
 		
+		public string FirstAlbumArtistSort {
+			get {return FirstInGroup(AlbumArtistsSort);}
+		}
+		
 		/// <summary>
 		///    Gets the first value contained in <see
 		///    cref="Performers" />.
@@ -665,6 +699,10 @@
 			get {return JoinGroup(Performers);}
 		}
 		
+		public string JoinedPerformersSort {
+			get {return JoinGroup(PerformersSort);}
+		}
+		
 		/// <summary>
 		///    Gets a semicolon separated string containing the values
 		///    in <see cref="Composers" />.
Index: src/TagLib/Ogg/XiphComment.cs
===================================================================
--- src/TagLib/Ogg/XiphComment.cs	(revision 118913)
+++ src/TagLib/Ogg/XiphComment.cs	(working copy)
@@ -480,6 +480,11 @@
 			set {SetField ("ARTIST", value);}
 		}
 		
+		public override string [] PerformersSort {
+			get {return GetField ("ARTISTSORT");}
+			set {SetField ("ARTISTSORT", value);}
+		}
+		
 		/// <summary>
 		///    Gets and sets the band or artist who is credited in the
 		///    creation of the entire album or collection containing the
@@ -500,6 +505,11 @@
 			set {SetField ("ALBUMARTIST", value);}
 		}
 		
+		public override string [] AlbumArtistsSort {
+			get {return GetField ("ALBUMARTISTSORT");}
+			set {SetField ("ALBUMARTISTSORT", value);}
+		}
+		
 		/// <summary>
 		///    Gets and sets the composers of the media represented by
 		///    the current instance.
Index: src/TagLib/Ogg/GroupedComment.cs
===================================================================
--- src/TagLib/Ogg/GroupedComment.cs	(revision 118913)
+++ src/TagLib/Ogg/GroupedComment.cs	(working copy)
@@ -215,6 +215,18 @@
 			set {if (tags.Count > 0) tags [0].Performers = value;}
 		}
 
+		public override string [] PerformersSort {
+			get {
+				string [] output = new string [0];
+				foreach (XiphComment tag in tags)
+					if (tag != null && output.Length == 0)
+						output = tag.PerformersSort;
+				
+				return output;
+			}
+			set {if (tags.Count > 0) tags [0].PerformersSort = value;}
+		}
+
 		/// <summary>
 		///    Gets and sets the band or artist who is credited in the
 		///    creation of the entire album or collection containing the
@@ -245,6 +257,18 @@
 			}
 			set {if (tags.Count > 0) tags [0].AlbumArtists = value;}
 		}
+		
+		public override string [] AlbumArtistsSort {
+			get {
+				string [] output = new string [0];
+				foreach (XiphComment tag in tags)
+					if (tag != null && output.Length == 0)
+						output = tag.AlbumArtistsSort;
+				
+				return output;
+			}
+			set {if (tags.Count > 0) tags [0].AlbumArtistsSort = value;}
+		}
 
 		/// <summary>
 		///    Gets and sets the composers of the media represented by
