diff --git a/nant.build b/nant.build
index 2340914..962c4e7 100644
--- a/nant.build
+++ b/nant.build
@@ -1,111 +1,111 @@
 ﻿<?xml version="1.0"?>
 <!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements.  See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version 2.0
+	(the "License"); you may not use this file except in compliance with
+	the License.  You may obtain a copy of the License at
 
-    http://www.apache.org/licenses/LICENSE-2.0
+	http://www.apache.org/licenses/LICENSE-2.0
 
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
+	Unless required by applicable law or agreed to in writing, software
+	distributed under the License is distributed on an "AS IS" BASIS,
+	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	See the License for the specific language governing permissions and
+	limitations under the License.
 -->
 <project name="Apache.NMS.MSMQ" default="default" xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd">
-    <!-- ============================================================================================ -->
-    <!--      I N I T I A L I Z A T I O N                                                             -->
-    <!-- ============================================================================================ -->
-    <property name="basedir" value="${project::get-base-directory()}" />
-    <property name="project.name" value="Apache.NMS.MSMQ" />
-    <property name="project.group" value="org.apache.activemq" />
-    <property name="project.version" value="1.2.0" unless="${property::exists('project.version')}" />
-    <property name="project.release.type" value="RC" unless="${property::exists('project.release.type')}" />
-    <property name="project.short_description" value="Apache NMS for MSMQ Class Library" />
-    <property name="project.description" value="Apache NMS for MSMQ Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for MSMQ" />
+	<!-- ============================================================================================ -->
+	<!--      I N I T I A L I Z A T I O N                                                             -->
+	<!-- ============================================================================================ -->
+	<property name="basedir" value="${project::get-base-directory()}" />
+	<property name="project.name" value="Apache.NMS.MSMQ" />
+	<property name="project.group" value="org.apache.activemq" />
+	<property name="project.version" value="1.2.1" unless="${property::exists('project.version')}" />
+	<property name="project.release.type" value="RC" unless="${property::exists('project.release.type')}" />
+	<property name="project.short_description" value="Apache NMS for MSMQ Class Library" />
+	<property name="project.description" value="Apache NMS for MSMQ Class Library (.Net Messaging Library Implementation): An implementation of the NMS API for MSMQ" />
 
-    <!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
-    <property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true" />
-    <property name="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.dll" dynamic="true" />
-    <property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true" />
-    <property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true" />
-    <property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true" />
-    <property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true" />
-    <property name="NUnit.Projectfile" value="Apache.NMS.MSMQ.Test.nunit" />
+	<!-- Repository organized as: organization/module/version/plaform/artifact, platform might be something like 'all' or 'net-2.0/release' -->
+	<property name="nunit.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" dynamic="true" />
+	<property name="nunit.extensions.dll" value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.extensions.dll" dynamic="true" />
+	<property name="Apache.NMS.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" dynamic="true" />
+	<property name="Apache.NMS.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" dynamic="true" />
+	<property name="Apache.NMS.Test.dll" value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll" dynamic="true" />
+	<property name="Apache.NMS.Test.pdb" value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb" dynamic="true" />
+	<property name="NUnit.Projectfile" value="Apache.NMS.MSMQ.Test.nunit" />
 
-    <!-- Skip certain frameworks, since MSMQ is not supported on those platforms. -->
-    <property name="build.netcf-2.0.skip" value="true" />
-    <property name="build.mono-2.0.skip" value="true" />
+	<!-- Skip certain frameworks, since MSMQ is not supported on those platforms. -->
+	<property name="build.netcf-2.0.skip" value="true" />
+	<property name="build.mono-2.0.skip" value="true" />
 
-    <target name="vendor-init" description="Initializes Vendor library from local repository.">
-        <!--
-           Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
-           'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
-           well-known suffixes are used to access and copy down vendor file dependencies.
-        -->
-        <property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org" />
+	<target name="vendor-init" description="Initializes Vendor library from local repository.">
+		<!--
+		   Vendor specific info.  The prefix of 'vendor.apache.org' is taken from the property
+		   'vendor.fileset.names'.  This comma-delimited list is iterated, and properties with
+		   well-known suffixes are used to access and copy down vendor file dependencies.
+		-->
+		<property name="vendor.fileset.names" value="vendor.apache.org,vendor.nunit.org" />
 
-        <!-- Property grouping for 'vendor.apache.org' -->
-        <property name="vendor.apache.org.name" value="Apache.NMS" />
-        <property name="vendor.apache.org.group" value="org.apache.activemq" />
-        <property name="vendor.apache.org.version" value="1.2.0" />
-        <property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />
+		<!-- Property grouping for 'vendor.apache.org' -->
+		<property name="vendor.apache.org.name" value="Apache.NMS" />
+		<property name="vendor.apache.org.group" value="org.apache.activemq" />
+		<property name="vendor.apache.org.version" value="1.2.1" />
+		<property name="vendor.apache.org.filenames" value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />
 
-        <!-- Property grouping for 'vendor.nunit.org' -->
-        <property name="vendor.nunit.org.name" value="NUnit" />
-        <property name="vendor.nunit.org.group" value="org.nunit" />
-        <property name="vendor.nunit.org.version" value="2.4.8" />
-        <property name="vendor.nunit.org.filenames" value="nunit.framework.dll,nunit.framework.extensions.dll" />
-    </target>
+		<!-- Property grouping for 'vendor.nunit.org' -->
+		<property name="vendor.nunit.org.name" value="NUnit" />
+		<property name="vendor.nunit.org.group" value="org.nunit" />
+		<property name="vendor.nunit.org.version" value="2.4.8" />
+		<property name="vendor.nunit.org.filenames" value="nunit.framework.dll,nunit.framework.extensions.dll" />
+	</target>
 
-    <target name="dependency-init" description="Initializes build dependencies">
-        <assemblyfileset failonempty="true" id="dependencies">
-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
-            <include name="${Apache.NMS.dll}" />
-        </assemblyfileset>
+	<target name="dependency-init" description="Initializes build dependencies">
+		<assemblyfileset failonempty="true" id="dependencies">
+			<include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
+			<include name="${Apache.NMS.dll}" />
+		</assemblyfileset>
 
-        <assemblyfileset failonempty="true" id="test.dependencies">
-            <include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
-            <include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
-            <include name="${Apache.NMS.dll}" />
-            <include name="${Apache.NMS.Test.dll}" />
-            <include name="${build.bin.dir}/${project.name}.dll" />
-            <include name="${nunit.dll}" />
-            <include name="${nunit.extensions.dll}" />
-        </assemblyfileset>
+		<assemblyfileset failonempty="true" id="test.dependencies">
+			<include name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+			<include name="${current.build.framework.assembly.dir}/System.Messaging.dll" />
+			<include name="${Apache.NMS.dll}" />
+			<include name="${Apache.NMS.Test.dll}" />
+			<include name="${build.bin.dir}/${project.name}.dll" />
+			<include name="${nunit.dll}" />
+			<include name="${nunit.extensions.dll}" />
+		</assemblyfileset>
 
-        <fileset id="content.filenames">
-            <include name="LICENSE.txt" />
-            <include name="NOTICE.txt" />
-            <include name="nmsprovider-*.config" />
-            <include name="${Apache.NMS.dll}" />
-            <include name="${Apache.NMS.pdb}" />
-            <include name="${Apache.NMS.Test.dll}" />
-            <include name="${Apache.NMS.Test.pdb}" />
-            <include name="${nunit.dll}" />
-            <include name="${nunit.extensions.dll}" />
-            <include name="${NUnit.Projectfile}" />
-        </fileset>
+		<fileset id="content.filenames">
+			<include name="LICENSE.txt" />
+			<include name="NOTICE.txt" />
+			<include name="nmsprovider-*.config" />
+			<include name="${Apache.NMS.dll}" />
+			<include name="${Apache.NMS.pdb}" />
+			<include name="${Apache.NMS.Test.dll}" />
+			<include name="${Apache.NMS.Test.pdb}" />
+			<include name="${nunit.dll}" />
+			<include name="${nunit.extensions.dll}" />
+			<include name="${NUnit.Projectfile}" />
+		</fileset>
 
-        <fileset id="install.filenames">
-            <include name="LICENSE.txt" />
-            <include name="NOTICE.txt" />
-            <include name="${build.bin.dir}/${project.name}.dll" />
-            <include name="${build.bin.dir}/${project.name}.pdb" />
-        </fileset>
+		<fileset id="install.filenames">
+			<include name="LICENSE.txt" />
+			<include name="NOTICE.txt" />
+			<include name="${build.bin.dir}/${project.name}.dll" />
+			<include name="${build.bin.dir}/${project.name}.pdb" />
+		</fileset>
 
-    </target>
+	</target>
 
-    <target name="default" depends="install-all" />
+	<target name="default" depends="install-all" />
 
-    <!-- Load the common target definitions  -->
-    <include buildfile="${basedir}/nant-common.xml" />
+	<!-- Load the common target definitions  -->
+	<include buildfile="${basedir}/nant-common.xml" />
 </project>
