diff --git a/VERSION b/VERSION
index 1277c83..834f262 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.8.0rc1
+2.8.0
diff --git a/example/www/cordova.js b/example/www/cordova.js
index 48e15bd..3cfc6db 100644
--- a/example/www/cordova.js
+++ b/example/www/cordova.js
@@ -1,5 +1,5 @@
 ﻿// Platform: windowsphone
-// 2.8.0rc1-0-g22bc4d8
+// 2.8.0-0-g6208c95
 /*
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
@@ -19,8 +19,8 @@
  under the License.
 */
 ;(function() {
-var CORDOVA_JS_BUILD_LABEL = '2.8.0rc1-0-g22bc4d8';
-// file: lib/scripts/require.js
+var CORDOVA_JS_BUILD_LABEL = '2.8.0-0-g6208c95';
+// file: lib\scripts\require.js
 
 var require,
     define;
@@ -329,7 +329,7 @@
 
 });
 
-// file: lib/common/argscheck.js
+// file: lib\common\argscheck.js
 define("cordova/argscheck", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -395,7 +395,7 @@
 
 });
 
-// file: lib/common/builder.js
+// file: lib\common\builder.js
 define("cordova/builder", function(require, exports, module) {
 
 var utils = require('cordova/utils');
@@ -508,7 +508,7 @@
 
 });
 
-// file: lib/common/channel.js
+// file: lib\common\channel.js
 define("cordova/channel", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -758,7 +758,7 @@
 
 });
 
-// file: lib/common/commandProxy.js
+// file: lib\common\commandProxy.js
 define("cordova/commandProxy", function(require, exports, module) {
 
 
@@ -788,7 +788,7 @@
 };
 });
 
-// file: lib/windowsphone/exec.js
+// file: lib\windowsphone\exec.js
 define("cordova/exec", function(require, exports, module) {
 
 var cordova = require('cordova');
@@ -841,7 +841,7 @@
 
 });
 
-// file: lib/common/modulemapper.js
+// file: lib\common\modulemapper.js
 define("cordova/modulemapper", function(require, exports, module) {
 
 var builder = require('cordova/builder'),
@@ -942,7 +942,7 @@
 
 });
 
-// file: lib/windowsphone/platform.js
+// file: lib\windowsphone\platform.js
 define("cordova/platform", function(require, exports, module) {
 
 var cordova = require('cordova'),
@@ -969,7 +969,7 @@
 
 });
 
-// file: lib/common/plugin/Acceleration.js
+// file: lib\common\plugin\Acceleration.js
 define("cordova/plugin/Acceleration", function(require, exports, module) {
 
 var Acceleration = function(x, y, z, timestamp) {
@@ -983,7 +983,7 @@
 
 });
 
-// file: lib/common/plugin/Camera.js
+// file: lib\common\plugin\Camera.js
 define("cordova/plugin/Camera", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1041,7 +1041,7 @@
 
 });
 
-// file: lib/common/plugin/CameraConstants.js
+// file: lib\common\plugin\CameraConstants.js
 define("cordova/plugin/CameraConstants", function(require, exports, module) {
 
 module.exports = {
@@ -1079,7 +1079,7 @@
 
 });
 
-// file: lib/common/plugin/CameraPopoverHandle.js
+// file: lib\common\plugin\CameraPopoverHandle.js
 define("cordova/plugin/CameraPopoverHandle", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -1097,7 +1097,7 @@
 
 });
 
-// file: lib/common/plugin/CameraPopoverOptions.js
+// file: lib\common\plugin\CameraPopoverOptions.js
 define("cordova/plugin/CameraPopoverOptions", function(require, exports, module) {
 
 var Camera = require('cordova/plugin/CameraConstants');
@@ -1119,7 +1119,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureAudioOptions.js
+// file: lib\common\plugin\CaptureAudioOptions.js
 define("cordova/plugin/CaptureAudioOptions", function(require, exports, module) {
 
 /**
@@ -1136,7 +1136,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureError.js
+// file: lib\common\plugin\CaptureError.js
 define("cordova/plugin/CaptureError", function(require, exports, module) {
 
 /**
@@ -1161,7 +1161,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureImageOptions.js
+// file: lib\common\plugin\CaptureImageOptions.js
 define("cordova/plugin/CaptureImageOptions", function(require, exports, module) {
 
 /**
@@ -1176,7 +1176,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureVideoOptions.js
+// file: lib\common\plugin\CaptureVideoOptions.js
 define("cordova/plugin/CaptureVideoOptions", function(require, exports, module) {
 
 /**
@@ -1193,7 +1193,7 @@
 
 });
 
-// file: lib/common/plugin/CompassError.js
+// file: lib\common\plugin\CompassError.js
 define("cordova/plugin/CompassError", function(require, exports, module) {
 
 /**
@@ -1212,7 +1212,7 @@
 
 });
 
-// file: lib/common/plugin/CompassHeading.js
+// file: lib\common\plugin\CompassHeading.js
 define("cordova/plugin/CompassHeading", function(require, exports, module) {
 
 var CompassHeading = function(magneticHeading, trueHeading, headingAccuracy, timestamp) {
@@ -1226,7 +1226,7 @@
 
 });
 
-// file: lib/common/plugin/ConfigurationData.js
+// file: lib\common\plugin\ConfigurationData.js
 define("cordova/plugin/ConfigurationData", function(require, exports, module) {
 
 /**
@@ -1247,7 +1247,7 @@
 
 });
 
-// file: lib/common/plugin/Connection.js
+// file: lib\common\plugin\Connection.js
 define("cordova/plugin/Connection", function(require, exports, module) {
 
 /**
@@ -1266,7 +1266,7 @@
 
 });
 
-// file: lib/common/plugin/Contact.js
+// file: lib\common\plugin\Contact.js
 define("cordova/plugin/Contact", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1428,7 +1428,7 @@
 
 });
 
-// file: lib/common/plugin/ContactAddress.js
+// file: lib\common\plugin\ContactAddress.js
 define("cordova/plugin/ContactAddress", function(require, exports, module) {
 
 /**
@@ -1459,7 +1459,7 @@
 
 });
 
-// file: lib/common/plugin/ContactError.js
+// file: lib\common\plugin\ContactError.js
 define("cordova/plugin/ContactError", function(require, exports, module) {
 
 /**
@@ -1486,7 +1486,7 @@
 
 });
 
-// file: lib/common/plugin/ContactField.js
+// file: lib\common\plugin\ContactField.js
 define("cordova/plugin/ContactField", function(require, exports, module) {
 
 /**
@@ -1508,7 +1508,7 @@
 
 });
 
-// file: lib/common/plugin/ContactFindOptions.js
+// file: lib\common\plugin\ContactFindOptions.js
 define("cordova/plugin/ContactFindOptions", function(require, exports, module) {
 
 /**
@@ -1527,7 +1527,7 @@
 
 });
 
-// file: lib/common/plugin/ContactName.js
+// file: lib\common\plugin\ContactName.js
 define("cordova/plugin/ContactName", function(require, exports, module) {
 
 /**
@@ -1553,7 +1553,7 @@
 
 });
 
-// file: lib/common/plugin/ContactOrganization.js
+// file: lib\common\plugin\ContactOrganization.js
 define("cordova/plugin/ContactOrganization", function(require, exports, module) {
 
 /**
@@ -1582,7 +1582,7 @@
 
 });
 
-// file: lib/common/plugin/Coordinates.js
+// file: lib\common\plugin\Coordinates.js
 define("cordova/plugin/Coordinates", function(require, exports, module) {
 
 /**
@@ -1636,7 +1636,7 @@
 
 });
 
-// file: lib/common/plugin/DirectoryEntry.js
+// file: lib\common\plugin\DirectoryEntry.js
 define("cordova/plugin/DirectoryEntry", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1727,7 +1727,7 @@
 
 });
 
-// file: lib/common/plugin/DirectoryReader.js
+// file: lib\common\plugin\DirectoryReader.js
 define("cordova/plugin/DirectoryReader", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -1775,7 +1775,7 @@
 
 });
 
-// file: lib/common/plugin/Entry.js
+// file: lib\common\plugin\Entry.js
 define("cordova/plugin/Entry", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1980,7 +1980,7 @@
 
 });
 
-// file: lib/common/plugin/File.js
+// file: lib\common\plugin\File.js
 define("cordova/plugin/File", function(require, exports, module) {
 
 /**
@@ -2042,7 +2042,7 @@
 
 });
 
-// file: lib/common/plugin/FileEntry.js
+// file: lib\common\plugin\FileEntry.js
 define("cordova/plugin/FileEntry", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -2107,7 +2107,7 @@
 
 });
 
-// file: lib/common/plugin/FileError.js
+// file: lib\common\plugin\FileError.js
 define("cordova/plugin/FileError", function(require, exports, module) {
 
 /**
@@ -2138,7 +2138,7 @@
 
 });
 
-// file: lib/common/plugin/FileReader.js
+// file: lib\common\plugin\FileReader.js
 define("cordova/plugin/FileReader", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -2206,11 +2206,7 @@
     reader._error = null;
     reader._readyState = FileReader.LOADING;
 
-    if (typeof file == 'string') {
-        // Deprecated in Cordova 2.4.
-        console.warn('Using a string argument with FileReader.readAs functions is deprecated.');
-        reader._fileName = file;
-    } else if (typeof file.fullPath == 'string') {
+    if (typeof file.fullPath == 'string') {
         reader._fileName = file.fullPath;
     } else {
         reader._fileName = '';
@@ -2514,7 +2510,7 @@
 
 });
 
-// file: lib/common/plugin/FileSystem.js
+// file: lib\common\plugin\FileSystem.js
 define("cordova/plugin/FileSystem", function(require, exports, module) {
 
 var DirectoryEntry = require('cordova/plugin/DirectoryEntry');
@@ -2537,7 +2533,7 @@
 
 });
 
-// file: lib/common/plugin/FileTransfer.js
+// file: lib\common\plugin\FileTransfer.js
 define("cordova/plugin/FileTransfer", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -2729,7 +2725,7 @@
 
 });
 
-// file: lib/common/plugin/FileTransferError.js
+// file: lib\common\plugin\FileTransferError.js
 define("cordova/plugin/FileTransferError", function(require, exports, module) {
 
 /**
@@ -2753,7 +2749,7 @@
 
 });
 
-// file: lib/common/plugin/FileUploadOptions.js
+// file: lib\common\plugin\FileUploadOptions.js
 define("cordova/plugin/FileUploadOptions", function(require, exports, module) {
 
 /**
@@ -2779,7 +2775,7 @@
 
 });
 
-// file: lib/common/plugin/FileUploadResult.js
+// file: lib\common\plugin\FileUploadResult.js
 define("cordova/plugin/FileUploadResult", function(require, exports, module) {
 
 /**
@@ -2796,7 +2792,7 @@
 
 });
 
-// file: lib/common/plugin/FileWriter.js
+// file: lib\common\plugin\FileWriter.js
 define("cordova/plugin/FileWriter", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -3055,7 +3051,7 @@
 
 });
 
-// file: lib/common/plugin/Flags.js
+// file: lib\common\plugin\Flags.js
 define("cordova/plugin/Flags", function(require, exports, module) {
 
 /**
@@ -3076,7 +3072,7 @@
 
 });
 
-// file: lib/common/plugin/GlobalizationError.js
+// file: lib\common\plugin\GlobalizationError.js
 define("cordova/plugin/GlobalizationError", function(require, exports, module) {
 
 
@@ -3102,7 +3098,7 @@
 
 });
 
-// file: lib/common/plugin/InAppBrowser.js
+// file: lib\common\plugin\InAppBrowser.js
 define("cordova/plugin/InAppBrowser", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -3178,7 +3174,7 @@
 
 });
 
-// file: lib/common/plugin/LocalFileSystem.js
+// file: lib\common\plugin\LocalFileSystem.js
 define("cordova/plugin/LocalFileSystem", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -3197,7 +3193,7 @@
 
 });
 
-// file: lib/common/plugin/Media.js
+// file: lib\common\plugin\Media.js
 define("cordova/plugin/Media", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -3377,7 +3373,7 @@
 
 });
 
-// file: lib/common/plugin/MediaError.js
+// file: lib\common\plugin\MediaError.js
 define("cordova/plugin/MediaError", function(require, exports, module) {
 
 /**
@@ -3417,7 +3413,7 @@
 
 });
 
-// file: lib/common/plugin/MediaFile.js
+// file: lib\common\plugin\MediaFile.js
 define("cordova/plugin/MediaFile", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -3457,7 +3453,7 @@
 
 });
 
-// file: lib/common/plugin/MediaFileData.js
+// file: lib\common\plugin\MediaFileData.js
 define("cordova/plugin/MediaFileData", function(require, exports, module) {
 
 /**
@@ -3481,7 +3477,7 @@
 
 });
 
-// file: lib/common/plugin/Metadata.js
+// file: lib\common\plugin\Metadata.js
 define("cordova/plugin/Metadata", function(require, exports, module) {
 
 /**
@@ -3497,7 +3493,7 @@
 
 });
 
-// file: lib/common/plugin/Position.js
+// file: lib\common\plugin\Position.js
 define("cordova/plugin/Position", function(require, exports, module) {
 
 var Coordinates = require('cordova/plugin/Coordinates');
@@ -3515,7 +3511,7 @@
 
 });
 
-// file: lib/common/plugin/PositionError.js
+// file: lib\common\plugin\PositionError.js
 define("cordova/plugin/PositionError", function(require, exports, module) {
 
 /**
@@ -3538,7 +3534,7 @@
 
 });
 
-// file: lib/common/plugin/ProgressEvent.js
+// file: lib\common\plugin\ProgressEvent.js
 define("cordova/plugin/ProgressEvent", function(require, exports, module) {
 
 // If ProgressEvent exists in global context, use it already, otherwise use our own polyfill
@@ -3590,7 +3586,7 @@
 
 });
 
-// file: lib/common/plugin/accelerometer.js
+// file: lib\common\plugin\accelerometer.js
 define("cordova/plugin/accelerometer", function(require, exports, module) {
 
 /**
@@ -3745,7 +3741,7 @@
 
 });
 
-// file: lib/common/plugin/accelerometer/symbols.js
+// file: lib\common\plugin\accelerometer\symbols.js
 define("cordova/plugin/accelerometer/symbols", function(require, exports, module) {
 
 
@@ -3756,7 +3752,7 @@
 
 });
 
-// file: lib/common/plugin/battery.js
+// file: lib\common\plugin\battery.js
 define("cordova/plugin/battery", function(require, exports, module) {
 
 /**
@@ -3840,7 +3836,7 @@
 
 });
 
-// file: lib/common/plugin/battery/symbols.js
+// file: lib\common\plugin\battery\symbols.js
 define("cordova/plugin/battery/symbols", function(require, exports, module) {
 
 
@@ -3850,7 +3846,7 @@
 
 });
 
-// file: lib/common/plugin/camera/symbols.js
+// file: lib\common\plugin\camera\symbols.js
 define("cordova/plugin/camera/symbols", function(require, exports, module) {
 
 
@@ -3862,7 +3858,7 @@
 
 });
 
-// file: lib/common/plugin/capture.js
+// file: lib\common\plugin\capture.js
 define("cordova/plugin/capture", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -3940,7 +3936,7 @@
 
 });
 
-// file: lib/common/plugin/capture/symbols.js
+// file: lib\common\plugin\capture\symbols.js
 define("cordova/plugin/capture/symbols", function(require, exports, module) {
 
 var modulemapper = require('cordova/modulemapper');
@@ -3956,7 +3952,7 @@
 
 });
 
-// file: lib/common/plugin/compass.js
+// file: lib\common\plugin\compass.js
 define("cordova/plugin/compass", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4043,7 +4039,7 @@
 
 });
 
-// file: lib/common/plugin/compass/symbols.js
+// file: lib\common\plugin\compass\symbols.js
 define("cordova/plugin/compass/symbols", function(require, exports, module) {
 
 
@@ -4055,7 +4051,7 @@
 
 });
 
-// file: lib/common/plugin/console-via-logger.js
+// file: lib\common\plugin\console-via-logger.js
 define("cordova/plugin/console-via-logger", function(require, exports, module) {
 
 //------------------------------------------------------------------------------
@@ -4227,7 +4223,7 @@
 
 });
 
-// file: lib/common/plugin/contacts.js
+// file: lib\common\plugin\contacts.js
 define("cordova/plugin/contacts", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4288,7 +4284,7 @@
 
 });
 
-// file: lib/common/plugin/contacts/symbols.js
+// file: lib\common\plugin\contacts\symbols.js
 define("cordova/plugin/contacts/symbols", function(require, exports, module) {
 
 
@@ -4305,7 +4301,7 @@
 
 });
 
-// file: lib/common/plugin/device.js
+// file: lib\common\plugin\device.js
 define("cordova/plugin/device", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4325,7 +4321,6 @@
     this.available = false;
     this.platform = null;
     this.version = null;
-    this.name = null;
     this.uuid = null;
     this.cordova = null;
     this.model = null;
@@ -4341,7 +4336,6 @@
             me.available = true;
             me.platform = info.platform;
             me.version = info.version;
-            me.name = info.name;
             me.uuid = info.uuid;
             me.cordova = buildLabel;
             me.model = info.model;
@@ -4368,7 +4362,7 @@
 
 });
 
-// file: lib/common/plugin/device/symbols.js
+// file: lib\common\plugin\device\symbols.js
 define("cordova/plugin/device/symbols", function(require, exports, module) {
 
 
@@ -4378,7 +4372,7 @@
 
 });
 
-// file: lib/common/plugin/echo.js
+// file: lib\common\plugin\echo.js
 define("cordova/plugin/echo", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -4416,7 +4410,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/file/symbols.js
+// file: lib\windowsphone\plugin\file\symbols.js
 define("cordova/plugin/file/symbols", function(require, exports, module) {
 
 
@@ -4427,7 +4421,7 @@
 
 });
 
-// file: lib/common/plugin/file/symbolshelper.js
+// file: lib\common\plugin\file\symbolshelper.js
 define("cordova/plugin/file/symbolshelper", function(require, exports, module) {
 
 module.exports = function(exportFunc) {
@@ -4452,7 +4446,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/filetransfer/symbols.js
+// file: lib\windowsphone\plugin\filetransfer\symbols.js
 define("cordova/plugin/filetransfer/symbols", function(require, exports, module) {
 
 
@@ -4463,7 +4457,7 @@
 
 });
 
-// file: lib/common/plugin/geolocation.js
+// file: lib\common\plugin\geolocation.js
 define("cordova/plugin/geolocation", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4659,7 +4653,7 @@
 
 });
 
-// file: lib/common/plugin/geolocation/symbols.js
+// file: lib\common\plugin\geolocation\symbols.js
 define("cordova/plugin/geolocation/symbols", function(require, exports, module) {
 
 
@@ -4672,7 +4666,7 @@
 
 });
 
-// file: lib/common/plugin/globalization.js
+// file: lib\common\plugin\globalization.js
 define("cordova/plugin/globalization", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5048,7 +5042,7 @@
 
 });
 
-// file: lib/common/plugin/globalization/symbols.js
+// file: lib\common\plugin\globalization\symbols.js
 define("cordova/plugin/globalization/symbols", function(require, exports, module) {
 
 
@@ -5059,7 +5053,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/inappbrowser/symbols.js
+// file: lib\windowsphone\plugin\inappbrowser\symbols.js
 define("cordova/plugin/inappbrowser/symbols", function(require, exports, module) {
 
 
@@ -5069,7 +5063,7 @@
 
 });
 
-// file: lib/common/plugin/logger.js
+// file: lib\common\plugin\logger.js
 define("cordova/plugin/logger", function(require, exports, module) {
 
 //------------------------------------------------------------------------------
@@ -5399,7 +5393,7 @@
 
 });
 
-// file: lib/common/plugin/logger/symbols.js
+// file: lib\common\plugin\logger\symbols.js
 define("cordova/plugin/logger/symbols", function(require, exports, module) {
 
 
@@ -5409,7 +5403,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/media/symbols.js
+// file: lib\windowsphone\plugin\media\symbols.js
 define("cordova/plugin/media/symbols", function(require, exports, module) {
 
 
@@ -5420,7 +5414,7 @@
 
 });
 
-// file: lib/common/plugin/network.js
+// file: lib\common\plugin\network.js
 define("cordova/plugin/network", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -5492,7 +5486,7 @@
 
 });
 
-// file: lib/common/plugin/networkstatus/symbols.js
+// file: lib\common\plugin\networkstatus\symbols.js
 define("cordova/plugin/networkstatus/symbols", function(require, exports, module) {
 
 
@@ -5504,7 +5498,7 @@
 
 });
 
-// file: lib/common/plugin/notification.js
+// file: lib\common\plugin\notification.js
 define("cordova/plugin/notification", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -5607,7 +5601,7 @@
 
 });
 
-// file: lib/common/plugin/notification/symbols.js
+// file: lib\common\plugin\notification\symbols.js
 define("cordova/plugin/notification/symbols", function(require, exports, module) {
 
 
@@ -5617,7 +5611,7 @@
 
 });
 
-// file: lib/common/plugin/requestFileSystem.js
+// file: lib\common\plugin\requestFileSystem.js
 define("cordova/plugin/requestFileSystem", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5663,7 +5657,7 @@
 
 });
 
-// file: lib/common/plugin/resolveLocalFileSystemURI.js
+// file: lib\common\plugin\resolveLocalFileSystemURI.js
 define("cordova/plugin/resolveLocalFileSystemURI", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5712,7 +5706,7 @@
 
 });
 
-// file: lib/common/plugin/splashscreen.js
+// file: lib\common\plugin\splashscreen.js
 define("cordova/plugin/splashscreen", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -5730,7 +5724,7 @@
 
 });
 
-// file: lib/common/plugin/splashscreen/symbols.js
+// file: lib\common\plugin\splashscreen\symbols.js
 define("cordova/plugin/splashscreen/symbols", function(require, exports, module) {
 
 
@@ -5740,7 +5734,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/DOMStorage/plugininit.js
+// file: lib\windowsphone\plugin\windowsphone\DOMStorage\plugininit.js
 define("cordova/plugin/windowsphone/DOMStorage/plugininit", function(require, exports, module) {
 
 (function(win,doc) {
@@ -5925,7 +5919,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/FileTransfer.js
+// file: lib\windowsphone\plugin\windowsphone\FileTransfer.js
 define("cordova/plugin/windowsphone/FileTransfer", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -6033,7 +6027,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/FileUploadOptions.js
+// file: lib\windowsphone\plugin\windowsphone\FileUploadOptions.js
 define("cordova/plugin/windowsphone/FileUploadOptions", function(require, exports, module) {
 
 /**
@@ -6065,7 +6059,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/XHRPatch/plugininit.js
+// file: lib\windowsphone\plugin\windowsphone\XHRPatch\plugininit.js
 define("cordova/plugin/windowsphone/XHRPatch/plugininit", function(require, exports, module) {
 
 // TODO: the build process will implicitly wrap this in a define() call
@@ -6305,7 +6299,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/console.js
+// file: lib\windowsphone\plugin\windowsphone\console.js
 define("cordova/plugin/windowsphone/console", function(require, exports, module) {
 
 
@@ -6335,7 +6329,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/console/symbols.js
+// file: lib\windowsphone\plugin\windowsphone\console\symbols.js
 define("cordova/plugin/windowsphone/console/symbols", function(require, exports, module) {
 
 
@@ -6346,7 +6340,7 @@
 
 });
 
-// file: lib/common/symbols.js
+// file: lib\common\symbols.js
 define("cordova/symbols", function(require, exports, module) {
 
 var modulemapper = require('cordova/modulemapper');
@@ -6359,7 +6353,7 @@
 
 });
 
-// file: lib/common/utils.js
+// file: lib\common\utils.js
 define("cordova/utils", function(require, exports, module) {
 
 var utils = exports;
@@ -6530,9 +6524,14 @@
 });
 
 window.cordova = require('cordova');
-// file: lib/scripts/bootstrap.js
+// file: lib\scripts\bootstrap.js
 
 (function (context) {
+    if (context._cordovaJsLoaded) {
+        throw new Error('cordova.js included multiple times.');
+    }
+    context._cordovaJsLoaded = true;
+
     var channel = require('cordova/channel');
     var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];
 
@@ -6604,7 +6603,7 @@
 
 }(window));
 
-// file: lib/scripts/plugin_loader.js
+// file: lib\scripts\plugin_loader.js
 
 // Tries to load all plugins' js-modules.
 // This is an async process, but onDeviceReady is blocked on onPluginsReady.
diff --git a/framework/Properties/AssemblyInfo.cs b/framework/Properties/AssemblyInfo.cs
index 58fcdbb..30c1e1c 100644
--- a/framework/Properties/AssemblyInfo.cs
+++ b/framework/Properties/AssemblyInfo.cs
@@ -6,7 +6,7 @@
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
 [assembly: AssemblyTitle("WPCordovaClassLib")]
-[assembly: AssemblyDescription("2.8.0rc1")]
+[assembly: AssemblyDescription("2.8.0")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("Apache Cordova")]
 [assembly: AssemblyProduct("WPCordovaClassLib")]
diff --git a/templates/standalone/Plugins/Device.cs b/templates/standalone/Plugins/Device.cs
index 52b124e..b5f4f03 100644
--- a/templates/standalone/Plugins/Device.cs
+++ b/templates/standalone/Plugins/Device.cs
@@ -73,7 +73,7 @@
             get
             {
                 // TODO: should be able to dynamically read the Cordova version from somewhere...
-                return "2.8.0rc1";
+                return "2.8.0";
             }
         }
 
diff --git a/templates/standalone/VERSION b/templates/standalone/VERSION
index 1277c83..834f262 100644
--- a/templates/standalone/VERSION
+++ b/templates/standalone/VERSION
@@ -1 +1 @@
-2.8.0rc1
+2.8.0
diff --git a/templates/standalone/www/cordova.js b/templates/standalone/www/cordova.js
index 48e15bd..3cfc6db 100644
--- a/templates/standalone/www/cordova.js
+++ b/templates/standalone/www/cordova.js
@@ -1,5 +1,5 @@
 ﻿// Platform: windowsphone
-// 2.8.0rc1-0-g22bc4d8
+// 2.8.0-0-g6208c95
 /*
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
@@ -19,8 +19,8 @@
  under the License.
 */
 ;(function() {
-var CORDOVA_JS_BUILD_LABEL = '2.8.0rc1-0-g22bc4d8';
-// file: lib/scripts/require.js
+var CORDOVA_JS_BUILD_LABEL = '2.8.0-0-g6208c95';
+// file: lib\scripts\require.js
 
 var require,
     define;
@@ -329,7 +329,7 @@
 
 });
 
-// file: lib/common/argscheck.js
+// file: lib\common\argscheck.js
 define("cordova/argscheck", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -395,7 +395,7 @@
 
 });
 
-// file: lib/common/builder.js
+// file: lib\common\builder.js
 define("cordova/builder", function(require, exports, module) {
 
 var utils = require('cordova/utils');
@@ -508,7 +508,7 @@
 
 });
 
-// file: lib/common/channel.js
+// file: lib\common\channel.js
 define("cordova/channel", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -758,7 +758,7 @@
 
 });
 
-// file: lib/common/commandProxy.js
+// file: lib\common\commandProxy.js
 define("cordova/commandProxy", function(require, exports, module) {
 
 
@@ -788,7 +788,7 @@
 };
 });
 
-// file: lib/windowsphone/exec.js
+// file: lib\windowsphone\exec.js
 define("cordova/exec", function(require, exports, module) {
 
 var cordova = require('cordova');
@@ -841,7 +841,7 @@
 
 });
 
-// file: lib/common/modulemapper.js
+// file: lib\common\modulemapper.js
 define("cordova/modulemapper", function(require, exports, module) {
 
 var builder = require('cordova/builder'),
@@ -942,7 +942,7 @@
 
 });
 
-// file: lib/windowsphone/platform.js
+// file: lib\windowsphone\platform.js
 define("cordova/platform", function(require, exports, module) {
 
 var cordova = require('cordova'),
@@ -969,7 +969,7 @@
 
 });
 
-// file: lib/common/plugin/Acceleration.js
+// file: lib\common\plugin\Acceleration.js
 define("cordova/plugin/Acceleration", function(require, exports, module) {
 
 var Acceleration = function(x, y, z, timestamp) {
@@ -983,7 +983,7 @@
 
 });
 
-// file: lib/common/plugin/Camera.js
+// file: lib\common\plugin\Camera.js
 define("cordova/plugin/Camera", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1041,7 +1041,7 @@
 
 });
 
-// file: lib/common/plugin/CameraConstants.js
+// file: lib\common\plugin\CameraConstants.js
 define("cordova/plugin/CameraConstants", function(require, exports, module) {
 
 module.exports = {
@@ -1079,7 +1079,7 @@
 
 });
 
-// file: lib/common/plugin/CameraPopoverHandle.js
+// file: lib\common\plugin\CameraPopoverHandle.js
 define("cordova/plugin/CameraPopoverHandle", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -1097,7 +1097,7 @@
 
 });
 
-// file: lib/common/plugin/CameraPopoverOptions.js
+// file: lib\common\plugin\CameraPopoverOptions.js
 define("cordova/plugin/CameraPopoverOptions", function(require, exports, module) {
 
 var Camera = require('cordova/plugin/CameraConstants');
@@ -1119,7 +1119,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureAudioOptions.js
+// file: lib\common\plugin\CaptureAudioOptions.js
 define("cordova/plugin/CaptureAudioOptions", function(require, exports, module) {
 
 /**
@@ -1136,7 +1136,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureError.js
+// file: lib\common\plugin\CaptureError.js
 define("cordova/plugin/CaptureError", function(require, exports, module) {
 
 /**
@@ -1161,7 +1161,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureImageOptions.js
+// file: lib\common\plugin\CaptureImageOptions.js
 define("cordova/plugin/CaptureImageOptions", function(require, exports, module) {
 
 /**
@@ -1176,7 +1176,7 @@
 
 });
 
-// file: lib/common/plugin/CaptureVideoOptions.js
+// file: lib\common\plugin\CaptureVideoOptions.js
 define("cordova/plugin/CaptureVideoOptions", function(require, exports, module) {
 
 /**
@@ -1193,7 +1193,7 @@
 
 });
 
-// file: lib/common/plugin/CompassError.js
+// file: lib\common\plugin\CompassError.js
 define("cordova/plugin/CompassError", function(require, exports, module) {
 
 /**
@@ -1212,7 +1212,7 @@
 
 });
 
-// file: lib/common/plugin/CompassHeading.js
+// file: lib\common\plugin\CompassHeading.js
 define("cordova/plugin/CompassHeading", function(require, exports, module) {
 
 var CompassHeading = function(magneticHeading, trueHeading, headingAccuracy, timestamp) {
@@ -1226,7 +1226,7 @@
 
 });
 
-// file: lib/common/plugin/ConfigurationData.js
+// file: lib\common\plugin\ConfigurationData.js
 define("cordova/plugin/ConfigurationData", function(require, exports, module) {
 
 /**
@@ -1247,7 +1247,7 @@
 
 });
 
-// file: lib/common/plugin/Connection.js
+// file: lib\common\plugin\Connection.js
 define("cordova/plugin/Connection", function(require, exports, module) {
 
 /**
@@ -1266,7 +1266,7 @@
 
 });
 
-// file: lib/common/plugin/Contact.js
+// file: lib\common\plugin\Contact.js
 define("cordova/plugin/Contact", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1428,7 +1428,7 @@
 
 });
 
-// file: lib/common/plugin/ContactAddress.js
+// file: lib\common\plugin\ContactAddress.js
 define("cordova/plugin/ContactAddress", function(require, exports, module) {
 
 /**
@@ -1459,7 +1459,7 @@
 
 });
 
-// file: lib/common/plugin/ContactError.js
+// file: lib\common\plugin\ContactError.js
 define("cordova/plugin/ContactError", function(require, exports, module) {
 
 /**
@@ -1486,7 +1486,7 @@
 
 });
 
-// file: lib/common/plugin/ContactField.js
+// file: lib\common\plugin\ContactField.js
 define("cordova/plugin/ContactField", function(require, exports, module) {
 
 /**
@@ -1508,7 +1508,7 @@
 
 });
 
-// file: lib/common/plugin/ContactFindOptions.js
+// file: lib\common\plugin\ContactFindOptions.js
 define("cordova/plugin/ContactFindOptions", function(require, exports, module) {
 
 /**
@@ -1527,7 +1527,7 @@
 
 });
 
-// file: lib/common/plugin/ContactName.js
+// file: lib\common\plugin\ContactName.js
 define("cordova/plugin/ContactName", function(require, exports, module) {
 
 /**
@@ -1553,7 +1553,7 @@
 
 });
 
-// file: lib/common/plugin/ContactOrganization.js
+// file: lib\common\plugin\ContactOrganization.js
 define("cordova/plugin/ContactOrganization", function(require, exports, module) {
 
 /**
@@ -1582,7 +1582,7 @@
 
 });
 
-// file: lib/common/plugin/Coordinates.js
+// file: lib\common\plugin\Coordinates.js
 define("cordova/plugin/Coordinates", function(require, exports, module) {
 
 /**
@@ -1636,7 +1636,7 @@
 
 });
 
-// file: lib/common/plugin/DirectoryEntry.js
+// file: lib\common\plugin\DirectoryEntry.js
 define("cordova/plugin/DirectoryEntry", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1727,7 +1727,7 @@
 
 });
 
-// file: lib/common/plugin/DirectoryReader.js
+// file: lib\common\plugin\DirectoryReader.js
 define("cordova/plugin/DirectoryReader", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -1775,7 +1775,7 @@
 
 });
 
-// file: lib/common/plugin/Entry.js
+// file: lib\common\plugin\Entry.js
 define("cordova/plugin/Entry", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -1980,7 +1980,7 @@
 
 });
 
-// file: lib/common/plugin/File.js
+// file: lib\common\plugin\File.js
 define("cordova/plugin/File", function(require, exports, module) {
 
 /**
@@ -2042,7 +2042,7 @@
 
 });
 
-// file: lib/common/plugin/FileEntry.js
+// file: lib\common\plugin\FileEntry.js
 define("cordova/plugin/FileEntry", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -2107,7 +2107,7 @@
 
 });
 
-// file: lib/common/plugin/FileError.js
+// file: lib\common\plugin\FileError.js
 define("cordova/plugin/FileError", function(require, exports, module) {
 
 /**
@@ -2138,7 +2138,7 @@
 
 });
 
-// file: lib/common/plugin/FileReader.js
+// file: lib\common\plugin\FileReader.js
 define("cordova/plugin/FileReader", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -2206,11 +2206,7 @@
     reader._error = null;
     reader._readyState = FileReader.LOADING;
 
-    if (typeof file == 'string') {
-        // Deprecated in Cordova 2.4.
-        console.warn('Using a string argument with FileReader.readAs functions is deprecated.');
-        reader._fileName = file;
-    } else if (typeof file.fullPath == 'string') {
+    if (typeof file.fullPath == 'string') {
         reader._fileName = file.fullPath;
     } else {
         reader._fileName = '';
@@ -2514,7 +2510,7 @@
 
 });
 
-// file: lib/common/plugin/FileSystem.js
+// file: lib\common\plugin\FileSystem.js
 define("cordova/plugin/FileSystem", function(require, exports, module) {
 
 var DirectoryEntry = require('cordova/plugin/DirectoryEntry');
@@ -2537,7 +2533,7 @@
 
 });
 
-// file: lib/common/plugin/FileTransfer.js
+// file: lib\common\plugin\FileTransfer.js
 define("cordova/plugin/FileTransfer", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -2729,7 +2725,7 @@
 
 });
 
-// file: lib/common/plugin/FileTransferError.js
+// file: lib\common\plugin\FileTransferError.js
 define("cordova/plugin/FileTransferError", function(require, exports, module) {
 
 /**
@@ -2753,7 +2749,7 @@
 
 });
 
-// file: lib/common/plugin/FileUploadOptions.js
+// file: lib\common\plugin\FileUploadOptions.js
 define("cordova/plugin/FileUploadOptions", function(require, exports, module) {
 
 /**
@@ -2779,7 +2775,7 @@
 
 });
 
-// file: lib/common/plugin/FileUploadResult.js
+// file: lib\common\plugin\FileUploadResult.js
 define("cordova/plugin/FileUploadResult", function(require, exports, module) {
 
 /**
@@ -2796,7 +2792,7 @@
 
 });
 
-// file: lib/common/plugin/FileWriter.js
+// file: lib\common\plugin\FileWriter.js
 define("cordova/plugin/FileWriter", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -3055,7 +3051,7 @@
 
 });
 
-// file: lib/common/plugin/Flags.js
+// file: lib\common\plugin\Flags.js
 define("cordova/plugin/Flags", function(require, exports, module) {
 
 /**
@@ -3076,7 +3072,7 @@
 
 });
 
-// file: lib/common/plugin/GlobalizationError.js
+// file: lib\common\plugin\GlobalizationError.js
 define("cordova/plugin/GlobalizationError", function(require, exports, module) {
 
 
@@ -3102,7 +3098,7 @@
 
 });
 
-// file: lib/common/plugin/InAppBrowser.js
+// file: lib\common\plugin\InAppBrowser.js
 define("cordova/plugin/InAppBrowser", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -3178,7 +3174,7 @@
 
 });
 
-// file: lib/common/plugin/LocalFileSystem.js
+// file: lib\common\plugin\LocalFileSystem.js
 define("cordova/plugin/LocalFileSystem", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -3197,7 +3193,7 @@
 
 });
 
-// file: lib/common/plugin/Media.js
+// file: lib\common\plugin\Media.js
 define("cordova/plugin/Media", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -3377,7 +3373,7 @@
 
 });
 
-// file: lib/common/plugin/MediaError.js
+// file: lib\common\plugin\MediaError.js
 define("cordova/plugin/MediaError", function(require, exports, module) {
 
 /**
@@ -3417,7 +3413,7 @@
 
 });
 
-// file: lib/common/plugin/MediaFile.js
+// file: lib\common\plugin\MediaFile.js
 define("cordova/plugin/MediaFile", function(require, exports, module) {
 
 var utils = require('cordova/utils'),
@@ -3457,7 +3453,7 @@
 
 });
 
-// file: lib/common/plugin/MediaFileData.js
+// file: lib\common\plugin\MediaFileData.js
 define("cordova/plugin/MediaFileData", function(require, exports, module) {
 
 /**
@@ -3481,7 +3477,7 @@
 
 });
 
-// file: lib/common/plugin/Metadata.js
+// file: lib\common\plugin\Metadata.js
 define("cordova/plugin/Metadata", function(require, exports, module) {
 
 /**
@@ -3497,7 +3493,7 @@
 
 });
 
-// file: lib/common/plugin/Position.js
+// file: lib\common\plugin\Position.js
 define("cordova/plugin/Position", function(require, exports, module) {
 
 var Coordinates = require('cordova/plugin/Coordinates');
@@ -3515,7 +3511,7 @@
 
 });
 
-// file: lib/common/plugin/PositionError.js
+// file: lib\common\plugin\PositionError.js
 define("cordova/plugin/PositionError", function(require, exports, module) {
 
 /**
@@ -3538,7 +3534,7 @@
 
 });
 
-// file: lib/common/plugin/ProgressEvent.js
+// file: lib\common\plugin\ProgressEvent.js
 define("cordova/plugin/ProgressEvent", function(require, exports, module) {
 
 // If ProgressEvent exists in global context, use it already, otherwise use our own polyfill
@@ -3590,7 +3586,7 @@
 
 });
 
-// file: lib/common/plugin/accelerometer.js
+// file: lib\common\plugin\accelerometer.js
 define("cordova/plugin/accelerometer", function(require, exports, module) {
 
 /**
@@ -3745,7 +3741,7 @@
 
 });
 
-// file: lib/common/plugin/accelerometer/symbols.js
+// file: lib\common\plugin\accelerometer\symbols.js
 define("cordova/plugin/accelerometer/symbols", function(require, exports, module) {
 
 
@@ -3756,7 +3752,7 @@
 
 });
 
-// file: lib/common/plugin/battery.js
+// file: lib\common\plugin\battery.js
 define("cordova/plugin/battery", function(require, exports, module) {
 
 /**
@@ -3840,7 +3836,7 @@
 
 });
 
-// file: lib/common/plugin/battery/symbols.js
+// file: lib\common\plugin\battery\symbols.js
 define("cordova/plugin/battery/symbols", function(require, exports, module) {
 
 
@@ -3850,7 +3846,7 @@
 
 });
 
-// file: lib/common/plugin/camera/symbols.js
+// file: lib\common\plugin\camera\symbols.js
 define("cordova/plugin/camera/symbols", function(require, exports, module) {
 
 
@@ -3862,7 +3858,7 @@
 
 });
 
-// file: lib/common/plugin/capture.js
+// file: lib\common\plugin\capture.js
 define("cordova/plugin/capture", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -3940,7 +3936,7 @@
 
 });
 
-// file: lib/common/plugin/capture/symbols.js
+// file: lib\common\plugin\capture\symbols.js
 define("cordova/plugin/capture/symbols", function(require, exports, module) {
 
 var modulemapper = require('cordova/modulemapper');
@@ -3956,7 +3952,7 @@
 
 });
 
-// file: lib/common/plugin/compass.js
+// file: lib\common\plugin\compass.js
 define("cordova/plugin/compass", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4043,7 +4039,7 @@
 
 });
 
-// file: lib/common/plugin/compass/symbols.js
+// file: lib\common\plugin\compass\symbols.js
 define("cordova/plugin/compass/symbols", function(require, exports, module) {
 
 
@@ -4055,7 +4051,7 @@
 
 });
 
-// file: lib/common/plugin/console-via-logger.js
+// file: lib\common\plugin\console-via-logger.js
 define("cordova/plugin/console-via-logger", function(require, exports, module) {
 
 //------------------------------------------------------------------------------
@@ -4227,7 +4223,7 @@
 
 });
 
-// file: lib/common/plugin/contacts.js
+// file: lib\common\plugin\contacts.js
 define("cordova/plugin/contacts", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4288,7 +4284,7 @@
 
 });
 
-// file: lib/common/plugin/contacts/symbols.js
+// file: lib\common\plugin\contacts\symbols.js
 define("cordova/plugin/contacts/symbols", function(require, exports, module) {
 
 
@@ -4305,7 +4301,7 @@
 
 });
 
-// file: lib/common/plugin/device.js
+// file: lib\common\plugin\device.js
 define("cordova/plugin/device", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4325,7 +4321,6 @@
     this.available = false;
     this.platform = null;
     this.version = null;
-    this.name = null;
     this.uuid = null;
     this.cordova = null;
     this.model = null;
@@ -4341,7 +4336,6 @@
             me.available = true;
             me.platform = info.platform;
             me.version = info.version;
-            me.name = info.name;
             me.uuid = info.uuid;
             me.cordova = buildLabel;
             me.model = info.model;
@@ -4368,7 +4362,7 @@
 
 });
 
-// file: lib/common/plugin/device/symbols.js
+// file: lib\common\plugin\device\symbols.js
 define("cordova/plugin/device/symbols", function(require, exports, module) {
 
 
@@ -4378,7 +4372,7 @@
 
 });
 
-// file: lib/common/plugin/echo.js
+// file: lib\common\plugin\echo.js
 define("cordova/plugin/echo", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -4416,7 +4410,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/file/symbols.js
+// file: lib\windowsphone\plugin\file\symbols.js
 define("cordova/plugin/file/symbols", function(require, exports, module) {
 
 
@@ -4427,7 +4421,7 @@
 
 });
 
-// file: lib/common/plugin/file/symbolshelper.js
+// file: lib\common\plugin\file\symbolshelper.js
 define("cordova/plugin/file/symbolshelper", function(require, exports, module) {
 
 module.exports = function(exportFunc) {
@@ -4452,7 +4446,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/filetransfer/symbols.js
+// file: lib\windowsphone\plugin\filetransfer\symbols.js
 define("cordova/plugin/filetransfer/symbols", function(require, exports, module) {
 
 
@@ -4463,7 +4457,7 @@
 
 });
 
-// file: lib/common/plugin/geolocation.js
+// file: lib\common\plugin\geolocation.js
 define("cordova/plugin/geolocation", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -4659,7 +4653,7 @@
 
 });
 
-// file: lib/common/plugin/geolocation/symbols.js
+// file: lib\common\plugin\geolocation\symbols.js
 define("cordova/plugin/geolocation/symbols", function(require, exports, module) {
 
 
@@ -4672,7 +4666,7 @@
 
 });
 
-// file: lib/common/plugin/globalization.js
+// file: lib\common\plugin\globalization.js
 define("cordova/plugin/globalization", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5048,7 +5042,7 @@
 
 });
 
-// file: lib/common/plugin/globalization/symbols.js
+// file: lib\common\plugin\globalization\symbols.js
 define("cordova/plugin/globalization/symbols", function(require, exports, module) {
 
 
@@ -5059,7 +5053,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/inappbrowser/symbols.js
+// file: lib\windowsphone\plugin\inappbrowser\symbols.js
 define("cordova/plugin/inappbrowser/symbols", function(require, exports, module) {
 
 
@@ -5069,7 +5063,7 @@
 
 });
 
-// file: lib/common/plugin/logger.js
+// file: lib\common\plugin\logger.js
 define("cordova/plugin/logger", function(require, exports, module) {
 
 //------------------------------------------------------------------------------
@@ -5399,7 +5393,7 @@
 
 });
 
-// file: lib/common/plugin/logger/symbols.js
+// file: lib\common\plugin\logger\symbols.js
 define("cordova/plugin/logger/symbols", function(require, exports, module) {
 
 
@@ -5409,7 +5403,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/media/symbols.js
+// file: lib\windowsphone\plugin\media\symbols.js
 define("cordova/plugin/media/symbols", function(require, exports, module) {
 
 
@@ -5420,7 +5414,7 @@
 
 });
 
-// file: lib/common/plugin/network.js
+// file: lib\common\plugin\network.js
 define("cordova/plugin/network", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -5492,7 +5486,7 @@
 
 });
 
-// file: lib/common/plugin/networkstatus/symbols.js
+// file: lib\common\plugin\networkstatus\symbols.js
 define("cordova/plugin/networkstatus/symbols", function(require, exports, module) {
 
 
@@ -5504,7 +5498,7 @@
 
 });
 
-// file: lib/common/plugin/notification.js
+// file: lib\common\plugin\notification.js
 define("cordova/plugin/notification", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -5607,7 +5601,7 @@
 
 });
 
-// file: lib/common/plugin/notification/symbols.js
+// file: lib\common\plugin\notification\symbols.js
 define("cordova/plugin/notification/symbols", function(require, exports, module) {
 
 
@@ -5617,7 +5611,7 @@
 
 });
 
-// file: lib/common/plugin/requestFileSystem.js
+// file: lib\common\plugin\requestFileSystem.js
 define("cordova/plugin/requestFileSystem", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5663,7 +5657,7 @@
 
 });
 
-// file: lib/common/plugin/resolveLocalFileSystemURI.js
+// file: lib\common\plugin\resolveLocalFileSystemURI.js
 define("cordova/plugin/resolveLocalFileSystemURI", function(require, exports, module) {
 
 var argscheck = require('cordova/argscheck'),
@@ -5712,7 +5706,7 @@
 
 });
 
-// file: lib/common/plugin/splashscreen.js
+// file: lib\common\plugin\splashscreen.js
 define("cordova/plugin/splashscreen", function(require, exports, module) {
 
 var exec = require('cordova/exec');
@@ -5730,7 +5724,7 @@
 
 });
 
-// file: lib/common/plugin/splashscreen/symbols.js
+// file: lib\common\plugin\splashscreen\symbols.js
 define("cordova/plugin/splashscreen/symbols", function(require, exports, module) {
 
 
@@ -5740,7 +5734,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/DOMStorage/plugininit.js
+// file: lib\windowsphone\plugin\windowsphone\DOMStorage\plugininit.js
 define("cordova/plugin/windowsphone/DOMStorage/plugininit", function(require, exports, module) {
 
 (function(win,doc) {
@@ -5925,7 +5919,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/FileTransfer.js
+// file: lib\windowsphone\plugin\windowsphone\FileTransfer.js
 define("cordova/plugin/windowsphone/FileTransfer", function(require, exports, module) {
 
 var exec = require('cordova/exec'),
@@ -6033,7 +6027,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/FileUploadOptions.js
+// file: lib\windowsphone\plugin\windowsphone\FileUploadOptions.js
 define("cordova/plugin/windowsphone/FileUploadOptions", function(require, exports, module) {
 
 /**
@@ -6065,7 +6059,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/XHRPatch/plugininit.js
+// file: lib\windowsphone\plugin\windowsphone\XHRPatch\plugininit.js
 define("cordova/plugin/windowsphone/XHRPatch/plugininit", function(require, exports, module) {
 
 // TODO: the build process will implicitly wrap this in a define() call
@@ -6305,7 +6299,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/console.js
+// file: lib\windowsphone\plugin\windowsphone\console.js
 define("cordova/plugin/windowsphone/console", function(require, exports, module) {
 
 
@@ -6335,7 +6329,7 @@
 
 });
 
-// file: lib/windowsphone/plugin/windowsphone/console/symbols.js
+// file: lib\windowsphone\plugin\windowsphone\console\symbols.js
 define("cordova/plugin/windowsphone/console/symbols", function(require, exports, module) {
 
 
@@ -6346,7 +6340,7 @@
 
 });
 
-// file: lib/common/symbols.js
+// file: lib\common\symbols.js
 define("cordova/symbols", function(require, exports, module) {
 
 var modulemapper = require('cordova/modulemapper');
@@ -6359,7 +6353,7 @@
 
 });
 
-// file: lib/common/utils.js
+// file: lib\common\utils.js
 define("cordova/utils", function(require, exports, module) {
 
 var utils = exports;
@@ -6530,9 +6524,14 @@
 });
 
 window.cordova = require('cordova');
-// file: lib/scripts/bootstrap.js
+// file: lib\scripts\bootstrap.js
 
 (function (context) {
+    if (context._cordovaJsLoaded) {
+        throw new Error('cordova.js included multiple times.');
+    }
+    context._cordovaJsLoaded = true;
+
     var channel = require('cordova/channel');
     var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];
 
@@ -6604,7 +6603,7 @@
 
 }(window));
 
-// file: lib/scripts/plugin_loader.js
+// file: lib\scripts\plugin_loader.js
 
 // Tries to load all plugins' js-modules.
 // This is an async process, but onDeviceReady is blocked on onPluginsReady.
diff --git a/templates/vs/MyTemplateStandAlone.vstemplate b/templates/vs/MyTemplateStandAlone.vstemplate
index e6579f7..11b735f 100644
--- a/templates/vs/MyTemplateStandAlone.vstemplate
+++ b/templates/vs/MyTemplateStandAlone.vstemplate
@@ -1,13 +1,13 @@
 <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
   <TemplateData>
-    <Name>CordovaWP7_2_8_0rc1</Name>
-    <Description>Cordova 2.8.0rc1 for Windows Phone 7.5 using the Cordova source code directly.</Description>
+    <Name>CordovaWP7_2_8_0</Name>
+    <Description>Cordova 2.8.0 for Windows Phone 7.5 using the Cordova source code directly.</Description>
     <ProjectType>CSharp</ProjectType>
     <ProjectSubType>
     </ProjectSubType>
     <SortOrder>1000</SortOrder>
     <CreateNewFolder>true</CreateNewFolder>
-    <DefaultName>CordovaWP7_2_8_0rc1</DefaultName>
+    <DefaultName>CordovaWP7_2_8_0</DefaultName>
     <ProvideDefaultName>true</ProvideDefaultName>
     <LocationField>Enabled</LocationField>
     <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
diff --git a/tooling/scripts/dist.js b/tooling/scripts/dist.js
index bca8b11..b1fd9cb 100644
--- a/tooling/scripts/dist.js
+++ b/tooling/scripts/dist.js
@@ -206,10 +206,10 @@
 /** - build cordova.js                          **/
 /** - windows.cordova.js -> templates + example **/
 /*************************************************/
-// New Workflow does not require building the new js, it should already be in place.
-// current_script = "buildjs.js";
-// exec('cscript ' + BUILD_DESTINATION + SCRIPTS + '\\buildjs.js //nologo');
-// space();
+// New Workflow may not require building the new js, it should already be in place.
+current_script = "buildjs.js";
+exec('cscript ' + BUILD_DESTINATION + SCRIPTS + '\\buildjs.js //nologo');
+space();
 
 /*************************************************/
 /******************  Step 5  *********************/
