diff --git a/www/plugins/es/js/controllers/message-controllers.js b/www/plugins/es/js/controllers/message-controllers.js
index 9279da555949c00217aebe379ec7316381420692..aa5a694fe79609e12f32318d37d436f2af249cc2 100644
--- a/www/plugins/es/js/controllers/message-controllers.js
+++ b/www/plugins/es/js/controllers/message-controllers.js
@@ -391,7 +391,7 @@ function ESMessageComposeModalController($scope, Modals, UIUtils, csWallet, esHt
       time: esHttp.date.now()
     };
 
-    esMessage.send(data, csWallet.data.keypair)
+    esMessage.send(data)
       .then(function(id) {
         $scope.id=id;
         UIUtils.loading.hide();
diff --git a/www/plugins/es/js/services/message-services.js b/www/plugins/es/js/services/message-services.js
index 7016878c2eeaf0254b7096bcd71bc853bdef3ea5..0388e4126ec802a21af3a07a854af2a3f8a380b5 100644
--- a/www/plugins/es/js/services/message-services.js
+++ b/www/plugins/es/js/services/message-services.js
@@ -110,27 +110,30 @@ angular.module('cesium.es.message.services', ['ngResource', 'cesium.platform',
         });
     }
 
-    function sendMessage(message, keypair) {
-      return doSendMessage(message, keypair)
-        .then(function(res){
-          var outbox = (csSettings.data.plugins.es.message &&
-          angular.isDefined(csSettings.data.plugins.es.message.outbox)) ?
-            csSettings.data.plugins.es.message.outbox : true;
+    function sendMessage(message) {
+      return csWallet.getKeypair()
+        .then(function(keypair) {
+          return doSendMessage(message, keypair)
+            .then(function (res) {
+              var outbox = (csSettings.data.plugins.es.message &&
+              angular.isDefined(csSettings.data.plugins.es.message.outbox)) ?
+                csSettings.data.plugins.es.message.outbox : true;
 
-          if (!outbox) return res;
+              if (!outbox) return res;
 
-          // Send to outbox
-          return doSendMessage(message, keypair, '/message/outbox', 'issuer')
-            .catch(function(err) {
-              console.error("Failed to store message to outbox: " + err);
-              return res; // the first result
-            });
-        })
-        .then(function(res) {
-          // Raise event
-          api.data.raise.sent(res);
+              // Send to outbox
+              return doSendMessage(message, keypair, '/message/outbox', 'issuer')
+                .catch(function (err) {
+                  console.error("Failed to store message to outbox: " + err);
+                  return res; // the first result
+                });
+            })
+            .then(function (res) {
+              // Raise event
+              api.data.raise.sent(res);
 
-          return res;
+              return res;
+            });
         });
     }
 
@@ -482,7 +485,7 @@ angular.module('cesium.es.message.services', ['ngResource', 'cesium.platform',
         .then(function(keypair) {
           return $q.all(developers.reduce(function(res, developer){
             return !developer.pubkey ? res :
-              res.concat(sendMessage(angular.merge({recipient: developer.pubkey}, message), keypair));
+              res.concat(doSendMessage(angular.merge({recipient: developer.pubkey}, message), keypair));
           }, []));
         })
         .then(function(res) {