diff --git a/nant.build b/nant.build
index 1d28231..2f94574 100644
--- a/nant.build
+++ b/nant.build
@@ -22,7 +22,7 @@
     <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.4.0" unless="${property::exists('project.version')}" />
+    <property name="project.version" value="1.5.0" unless="${property::exists('project.version')}" />
     <property name="project.release.type" value="SNAPSHOT" 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" />
@@ -51,7 +51,7 @@
         <!-- 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.4.0" />
+        <property name="vendor.apache.org.version" value="1.5.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.nunit.org' -->
diff --git a/package.ps1 b/package.ps1
index c41c344..12f8d23 100644
--- a/package.ps1
+++ b/package.ps1
@@ -14,49 +14,49 @@
 # limitations under the License.
 
 $pkgname = "Apache.NMS.MSMQ"
-$pkgver = "1.3-SNAPSHOT"
+$pkgver = "1.5-SNAPSHOT"
 $configurations = "release", "debug"
 $frameworks = "net-2.0", "net-3.5"
 
 write-progress "Creating package directory." "Initializing..."
 if(!(test-path package))
 {
-	md package
+    md package
 }
 
 if(test-path build)
 {
-	pushd build
+    pushd build
 
-	$pkgdir = "..\package"
+    $pkgdir = "..\package"
 
-	write-progress "Packaging Application files." "Scanning..."
-	$zipfile = "$pkgdir\$pkgname-$pkgver-bin.zip"
-	zip -9 -u -j "$zipfile" ..\LICENSE.txt
-	zip -9 -u -j "$zipfile" ..\NOTICE.txt
-	foreach($configuration in $configurations)
-	{
-		foreach($framework in $frameworks)
-		{
-			zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll"
-			zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.xml"
-			zip -9 -u "$zipfile" "$framework\$configuration\nmsprovider*.config"
-			zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll"
-			zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.xml"
-			if($framework -ieq "mono-2.0")
-			{
-				zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll.mdb"
-				zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll.mdb"
-			}
-			else
-			{
-				zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.pdb"
-				zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.pdb"
-			}
-		}
-	}
+    write-progress "Packaging Application files." "Scanning..."
+    $zipfile = "$pkgdir\$pkgname-$pkgver-bin.zip"
+    zip -9 -u -j "$zipfile" ..\LICENSE.txt
+    zip -9 -u -j "$zipfile" ..\NOTICE.txt
+    foreach($configuration in $configurations)
+    {
+        foreach($framework in $frameworks)
+        {
+            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll"
+            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.xml"
+            zip -9 -u "$zipfile" "$framework\$configuration\nmsprovider*.config"
+            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll"
+            zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.xml"
+            if($framework -ieq "mono-2.0")
+            {
+                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.dll.mdb"
+                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.dll.mdb"
+            }
+            else
+            {
+                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.pdb"
+                zip -9 -u "$zipfile" "$framework\$configuration\$pkgname.Test.pdb"
+            }
+        }
+    }
 
-	popd
+    popd
 }
 
 write-progress "Packaging Source code files." "Scanning..."
