diff --git a/src/registry/registry.js b/src/registry/registry.js
index <HASH>..<HASH> 100644
--- a/src/registry/registry.js
+++ b/src/registry/registry.js
@@ -142,8 +142,8 @@ module.exports = {
     publish: function(args) {
         return initSettings()
         .then(function(settings) {
-            var p = manifest.generatePackageJsonFromPluginXml(args[0]);
-            p.then(function() {
+            return manifest.generatePackageJsonFromPluginXml(args[0])
+            .then(function() {
                 return Q.ninvoke(npm, 'load', settings);
             }).then(function() {
                 return Q.ninvoke(npm.commands, 'publish', args)
CB-<I> Fix incorrect "success" message when publishing fails.

Problem was introduced by promise refactoring.