diff --git a/www/js/controllers/login-controllers.js b/www/js/controllers/login-controllers.js
index 48571c588afeb5aa4ffb4a48bce954047db3572b..a5f7e98f9c899a8bb6735fccf362743682560eb3 100644
--- a/www/js/controllers/login-controllers.js
+++ b/www/js/controllers/login-controllers.js
@@ -154,9 +154,12 @@ function LoginModalController($scope, $timeout, $q, $ionicPopover, CryptoUtils,
       var matches = BMA.regexp.PUBKEY.exec(pubkey);
       // valid pubkey: use it
       if (matches) {
-        promise = $q.when({
-          pubkey: pubkey
-        });
+        promise = UIUtils.loading.show()
+          .then(function() {
+            return {
+              pubkey: pubkey
+            }
+          });
       }
 
       // Check checksum
@@ -167,14 +170,17 @@ function LoginModalController($scope, $timeout, $q, $ionicPopover, CryptoUtils,
 
           pubkey = matches[1];
           var checksum = matches[2];
-          var expectedChecksum = CryptoUtils.pkChecksum(pubkey);
+          var expectedChecksum = csCrypto.util.pkChecksum(pubkey);
           if (checksum != expectedChecksum) {
             $scope.form.pubkey.$error = {checksum: true};
           }
           else {
-            promise = $q.when({
-              pubkey: pubkey
-            });
+            promise = UIUtils.loading.show()
+              .then(function() {
+                return {
+                  pubkey: pubkey
+                }
+              });
           }
         }
         // Not a pubkey: launch search on
diff --git a/www/js/services/bma-services.js b/www/js/services/bma-services.js
index 8fcf68ad948ac9ebb8ecddefbc5eb03584f7e101..c411664b3eff49502cd94403c55ef19b9c11bff7 100644
--- a/www/js/services/bma-services.js
+++ b/www/js/services/bma-services.js
@@ -725,10 +725,11 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
         }
         // If pubkey+checksum
         else if (exact(regexp.PUBKEY_WITH_CHECKSUM).test(uri)) {
+          console.debug("[BMA.parse] Detecting a pubkey with checksum: " + uri);
           var matches = exports.regexp.PUBKEY_WITH_CHECKSUM.exec(uri);
           pubkey = matches[1];
           var checksum = matches[2];
-          var expectedChecksum = csCrypto.utils.pkChecksum(pubkey);
+          var expectedChecksum = csCrypto.util.pkChecksum(pubkey);
           if (checksum != expectedChecksum) throw {message: 'ERROR.PUBKEY_INVALID_CHECKSUM'};
           resolve({
             pubkey: pubkey
@@ -810,6 +811,7 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium.
           }
         }
         else {
+          console.debug("[BMA.parse] Could not parse URI: " + uri);
           reject( {message: 'ERROR.UNKNOWN_URI_FORMAT'});
         }
       })
diff --git a/www/js/services/crypto-services.js b/www/js/services/crypto-services.js
index ed37233dedfb06b585bdeb1dc5a2ee0eb69ca5c7..7dd3bda5382f9ae61cd361659cdfb59b7398cca1 100644
--- a/www/js/services/crypto-services.js
+++ b/www/js/services/crypto-services.js
@@ -1408,9 +1408,9 @@ angular.module('cesium.crypto.services', ['cesium.utils.services'])
       errorCodes: errorCodes,
       constants: constants,
       // copy CryptoUtils
-      utils: angular.merge({
+      util: angular.merge({
           pkChecksum: pkChecksum
-        }, CryptoUtils.utils),
+        }, CryptoUtils.util),
       keyfile: {
         read: readKeyFile,
         parseWIF_or_EWIF: parseWIF_or_EWIF,