Index: /trunk/eraser/Eraser.BlackBox/BlackBoxReport.cs
===================================================================
--- /trunk/eraser/Eraser.BlackBox/BlackBoxReport.cs	(revision 2702)
+++ /trunk/eraser/Eraser.BlackBox/BlackBoxReport.cs	(revision 2703)
@@ -184,5 +184,5 @@
 
 		/// <summary>
-		/// Gets or sets whether the given report has been uploaded to the server.
+		/// Gets whether the given report has been uploaded to the server.
 		/// </summary>
 		public bool Submitted
@@ -190,9 +190,31 @@
 			get
 			{
-				return Status == 1;
-			}
-			set
-			{
-				Status = Convert.ToByte(value);
+				return Status[0] == 1;
+			}
+			internal set
+			{
+				byte[] status = Status;
+				status[0] = Convert.ToByte(value);
+				Status = status;
+			}
+		}
+
+		/// <summary>
+		/// Gets the ID of the current report returned by the server during upload.
+		/// This will be 0 if <see cref="Submitted"/> is false.
+		/// </summary>
+		public int ID
+		{
+			get
+			{
+				return BitConverter.ToInt32(Status, 1);
+			}
+
+			internal set
+			{
+				byte[] bytes = BitConverter.GetBytes(value);
+				byte[] status = Status;
+				Buffer.BlockCopy(bytes, 0, status, 1, bytes.Length);
+				Status = status;
 			}
 		}
@@ -201,9 +223,9 @@
 		/// Gets or sets the status of the report.
 		/// </summary>
-		private byte Status
-		{
-			get
-			{
-				byte[] buffer = new byte[1];
+		private byte[] Status
+		{
+			get
+			{
+				byte[] buffer = new byte[5];
 				using (FileStream stream = new FileStream(System.IO.Path.Combine(Path, StatusFileName),
 					FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read))
@@ -212,14 +234,13 @@
 				}
 
-				return buffer[0];
+				return buffer;
 			}
 
 			set
 			{
-				byte[] buffer = { value };
 				using (FileStream stream = new FileStream(System.IO.Path.Combine(Path, StatusFileName),
 					FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
 				{
-					stream.Write(buffer, 0, buffer.Length);
+					stream.Write(value, 0, Math.Min(value.Length, 5));
 				}
 			}
