Index: Rhino.ServiceBus.Tests/XmlSerializerTest.cs
===================================================================
--- Rhino.ServiceBus.Tests/XmlSerializerTest.cs	(revision 2080)
+++ Rhino.ServiceBus.Tests/XmlSerializerTest.cs	(working copy)
@@ -58,6 +58,17 @@
 			Assert.Equal(new byte[]{1,2,3,4}, actual);
 		}
 
+		[Fact]
+		public void Can_serialize_and_deserialize_DateTimeOffset()
+		{
+			var value = DateTimeOffset.Now;
+			var serializer = new XmlMessageSerializer(new DefaultReflection(), new DefaultKernel());
+			var stream = new MemoryStream();
+			serializer.Serialize(new object[] { value }, stream);
+			stream.Position = 0;
+			var actual = (DateTimeOffset)serializer.Deserialize(stream)[0];
+			Assert.Equal(value, actual);
+		}
 
         [Fact]
         public void Can_serialize_and_deserialize_array()
Index: Rhino.ServiceBus/Serializers/XmlMessageSerializer.cs
===================================================================
--- Rhino.ServiceBus/Serializers/XmlMessageSerializer.cs	(revision 2080)
+++ Rhino.ServiceBus/Serializers/XmlMessageSerializer.cs	(working copy)
@@ -189,6 +189,9 @@
             if (type == typeof(DateTime))
                 return XmlConvert.ToDateTime(value, XmlDateTimeSerializationMode.Utc);
 
+			if (type == typeof(DateTimeOffset))
+				return XmlConvert.ToDateTimeOffset(value);
+
             if (type == typeof(TimeSpan))
                 return XmlConvert.ToTimeSpan(value);
 
@@ -214,6 +217,10 @@
 
             if (value is DateTime)
                 return ((DateTime)value).ToString("yyyy-MM-ddTHH:mm:ss.fffffff");
+
+			if(value is DateTimeOffset)
+				return XmlConvert.ToString((DateTimeOffset)value);
+
             if (value is TimeSpan)
             {
                 var ts = (TimeSpan)value;
@@ -320,6 +327,9 @@
             if (type == typeof(DateTime))
                 return true;
 
+			if (type == typeof(DateTimeOffset))
+				return true;
+
             if (type == typeof(TimeSpan))
                 return true;
 
