Index: src/TagLib/Id3v2/Tag.cs
===================================================================
--- src/TagLib/Id3v2/Tag.cs	(revision 153937)
+++ src/TagLib/Id3v2/Tag.cs	(working copy)
@@ -986,7 +986,7 @@
 			string result = frame == null ? null : frame.ToString ();
 			return string.IsNullOrEmpty (result) ? null : result;
 		}
-		
+
 		/// <summary>
 		///    Gets the text values from a specified Text Information
 		///    Frame.
@@ -1049,7 +1049,7 @@
 		/// </summary>
 		/// <param name="description">String containing the description field</param>
 		/// <returns>UserTextInformationFrame (TXXX) that corresponds to the description</returns>
-		private string GetUserTextAsString (string description){
+		private string GetUserTextAsString (string description) {
 
 			//Gets the TXXX frame, frame will be null if nonexistant
 			UserTextInformationFrame frame = UserTextInformationFrame.Get (
@@ -1063,6 +1063,23 @@
 		}
 
 		/// <summary>
+		/// Gets a TXXX frame's value via reference of the description field
+		/// </summary>
+		/// <param name="description">String containing the description field</param>
+		/// <returns>Double value contained in the user frame</returns>
+		private double GetUserTextAsDouble (string description) {
+			string text = GetUserTextAsString (description);
+			if (text == null)
+				return 0;
+			
+			double result;
+			if (double.TryParse (text, out result))
+				return result;
+			
+			return 0;
+		}
+
+		/// <summary>
 		/// Creates and/or sets a UserTextInformationFrame (TXXX)  with the given
 		/// description and text.
 		/// </summary>
@@ -1086,6 +1103,17 @@
 		}
 
 		/// <summary>
+		/// Creates and/or sets a UserTextInformationFrame (TXXX)  with the given
+		/// description and double value.
+		/// </summary>
+		/// <param name="description">String containing the Description field for the
+		/// TXXX frame</param>
+		/// <param name="val">Double containing the value for the TXXX frame</param>
+		private void SetUserTextAsDouble(string description, double val) {
+			SetUserTextAsString (description, val.ToString (CultureInfo.InvariantCulture));
+		}
+
+		/// <summary>
 		/// Gets the text from a particular UFID frame, referenced by the owner field
 		/// </summary>
 		/// <param name="owner">String containing the "Owner" data</param>
@@ -1686,6 +1714,58 @@
 			}
 			set {SetNumberFrame (FrameType.TBPM, value, 0);}
 		}
+
+		/// <summary>
+		///    Gets and sets the ReplayGain track gain.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain track
+		///    gain for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public override double TrackGain {
+			get { return GetUserTextAsDouble ("replaygain_track_gain"); }
+			set { SetUserTextAsDouble ("replaygain_track_gain", value); }
+		}
+
+		/// <summary>
+		///    Gets and sets the ReplayGain track peak.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain track
+		///    peak for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public override double TrackPeak {
+			get { return GetUserTextAsDouble ("replaygain_track_peak"); }
+			set { SetUserTextAsDouble ("replaygain_track_peak", value); }
+		}
+
+		/// <summary>
+		///    Gets and sets the ReplayGain album gain.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain album
+		///    gain for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public override double AlbumGain {
+			get { return GetUserTextAsDouble ("replaygain_album_gain"); }
+			set { SetUserTextAsDouble ("replaygain_album_gain", value); }
+		}
+
+		/// <summary>
+		///    Gets and sets the ReplayGain album peak.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain album
+		///    peak for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public override double AlbumPeak {
+			get { return GetUserTextAsDouble ("replaygain_album_peak"); }
+			set { SetUserTextAsDouble ("replaygain_album_peak", value); }
+		}
 		
 		/// <summary>
 		///    Gets and sets the conductor or director of the media
Index: src/TagLib/Tag.cs
===================================================================
--- src/TagLib/Tag.cs	(revision 153937)
+++ src/TagLib/Tag.cs	(working copy)
@@ -551,6 +551,46 @@
 		}
 		
 		/// <summary>
+		///    Gets and sets the ReplayGain track gain.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain track
+		///    gain for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public virtual double TrackGain { get; set; }
+
+		/// <summary>
+		///    Gets and sets the ReplayGain track peak.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain track
+		///    peak for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public virtual double TrackPeak { get; set; }
+
+		/// <summary>
+		///    Gets and sets the ReplayGain album gain.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain album
+		///    gain for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public virtual double AlbumGain { get; set; }
+
+		/// <summary>
+		///    Gets and sets the ReplayGain album peak.
+		/// </summary>
+		/// <value>
+		///    A <see cref="double" /> containing the ReplayGain album
+		///    peak for the audio of the media represented by the
+		///    current instance, or zero if not specified.
+		/// </value>
+		public virtual double AlbumPeak { get; set; }
+
+		/// <summary>
 		///    Gets and sets the number of beats per minute in the audio
 		///    of the media represented by the current instance.
 		/// </summary>
Index: examples/ReadFromUri.cs
===================================================================
--- examples/ReadFromUri.cs	(revision 153937)
+++ examples/ReadFromUri.cs	(working copy)
@@ -82,6 +82,12 @@
                 Write ("Disc",                  file.Tag.Disc);
                 Write ("DiscCount",             file.Tag.DiscCount);
 
+                Console.WriteLine ("ReplayGain");
+                Write ("TrackGain",             file.Tag.TrackGain);
+                Write ("TrackPeak",             file.Tag.TrackPeak);
+                Write ("AlbumGain",             file.Tag.AlbumGain);
+                Write ("AlbumPeak",             file.Tag.AlbumPeak);
+
                 Console.WriteLine("Lyrics:\n"    +  file.Tag.Lyrics + "\n");
                 
                 Console.WriteLine("Media Types:     " + file.Properties.MediaTypes + "\n");
