diff --git a/package.json b/package.json
index e15ca95b0eb593c06d5d4607a4079a41c6533869..fa5eca2a919bb4f0015c0e51543540bdd3fa06f2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "cesium",
-  "version": "0.1.3",
+  "version": "0.1.4",
   "description": "A webapp client for Duniter network",
   "dependencies": {
     "gulp": "^3.9.1",
diff --git a/www/i18n/locale-en.json b/www/i18n/locale-en.json
index f5a3e4346ef16bcc1de935476f4a3df3396e0dd2..02e9c1eb3fb0f83fbf2ae11872dadbd799c67af9 100644
--- a/www/i18n/locale-en.json
+++ b/www/i18n/locale-en.json
@@ -58,6 +58,7 @@
     "NODE": "Duniter Node",
     "NODE_HELP": "server.domain.com:port",
     "USE_LOCAL_STORAGE": "Enable local storage",
+    "REMEMBER_ME": "Remember me",
     "POPUP_NODE": {
       "TITLE" : "Duniter Node",
       "HELP" : "Set the address of the node to use:"
diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json
index 42cc282799cd5423eab4f63abf7723cfda53b827..3ac8c44ac3cbd84ff483471ad5d29da925afb5ac 100644
--- a/www/i18n/locale-fr-FR.json
+++ b/www/i18n/locale-fr-FR.json
@@ -58,6 +58,7 @@
     "NODE": "Noeud Duniter",
     "NODE_HELP": "server.domain.com:port",
     "USE_LOCAL_STORAGE": "Activer le stockage local",
+    "REMEMBER_ME": "Se rappeller de moi",
     "POPUP_NODE": {
       "TITLE" : "Noeud Duniter",
       "HELP" : "Saisissez l'adresse du noeud que vous voulez utiliser :"
diff --git a/www/js/config.js b/www/js/config.js
index ee8122747b0290c4b17b4541c49052816e17ce1e..54af8481cf9e198cbf2505f44ade82f9e16e687c 100644
--- a/www/js/config.js
+++ b/www/js/config.js
@@ -14,8 +14,8 @@ angular.module("cesium.config", [])
 	"TIMEOUT": 4000,
 	"DEBUG": false,
 	"NATIVE_TRANSITION": false,
-	"VERSION": "0.1.3",
-	"BUILD_DATE": "2016-05-26T23:07:50.994Z"
+	"VERSION": "0.1.4",
+	"BUILD_DATE": "2016-05-28T17:53:04.922Z"
 })
 
 ;
\ No newline at end of file
diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js
index a19698bea18f9a35940f7c42150e1508775fc4f3..b44c534d48a5bbbb6ae61bdc50cd926546366b6a 100644
--- a/www/js/controllers/app-controllers.js
+++ b/www/js/controllers/app-controllers.js
@@ -68,8 +68,7 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti
   };
 
   // Login and load wallet
-  $scope.loadWallet = function(allowCancel) {
-    if (!allowCancel) {allowCancel = false;}
+  $scope.loadWallet = function() {
     return $q(function(resolve, reject){
 
       if (!Wallet.isLogin()) {
@@ -95,12 +94,7 @@ function LoginModalController($scope, $rootScope, $ionicModal, Wallet, CryptoUti
                     .catch(UIUtils.onError('ERROR.LOAD_WALLET_DATA_ERROR', reject));
                 },
                 function() { // user cancel callback
-                  if (allowCancel) {
-                    resolve();
-                  }
-                  else {
-                    reject();
-                  }
+                  reject('CANCELLED');
                 });
             }
           })
diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js
index 0aff62acfe2bec688f5e56d26ef4f62dc6f346ba..7fcf6f7cf375cc975fa223ffcb55738a2889e927 100644
--- a/www/js/controllers/settings-controllers.js
+++ b/www/js/controllers/settings-controllers.js
@@ -25,30 +25,23 @@ function SettingsController($scope, $state, UIUtils, Wallet, $translate, BMA, $q
       {id:'fr-FR', label:'Français'},
       {id:'en', label:'English'}
     ];
-  $scope.formData = { // Init with default settings
-    useRelative: Wallet.defaultSettings.useRelative,
-    node: Wallet.defaultSettings.node,
-    useLocalStorage: Wallet.defaultSettings.useLocalStorage
-  }
-  $scope.formData.locale = _.findWhere($scope.locales, {id: $translate.use()});
+  $scope.formData = angular.copy(Wallet.defaultSettings);
   $scope.loading = true;
 
   $scope.$on('$ionicView.enter', function(e, $state) {
     $scope.loading = true; // to avoid the call of Wallet.store()
-    $scope.loadWallet(true/*allowCancel*/)
-      .then(function(walletData) {
-        if (walletData) {
-          $scope.formData.useRelative = walletData.settings.useRelative;
-          $scope.formData.node = walletData.settings.node;
-          $scope.formData.useLocalStorage = walletData.settings.useLocalStorage;
-          if (walletData.settings.locale && walletData.settings.locale.id) {
-            $scope.formData.locale = _.findWhere($scope.locales, {id: walletData.settings.locale.id});
-          }
-        }
-        UIUtils.loading.hide();
-        $scope.loading = false;
-      })
-      .catch(UIUtils.onError());
+    $scope.formData.locale = _.findWhere($scope.locales, {id: $translate.use()}); 
+    Wallet.restore()
+    .then(function() {
+      angular.merge($scope.formData, Wallet.data.settings);
+      $scope.formData.locale = _.findWhere($scope.locales, {id: Wallet.data.settings.locale.id});
+      UIUtils.loading.hide();
+      $scope.loading = false;
+    })
+    .catch(function(err) {
+      $scope.loading = false;
+      UIUtils.loading.hide();
+    });
   });
 
   $scope.setSettingsForm = function(settingsForm) {
@@ -132,17 +125,11 @@ function SettingsController($scope, $state, UIUtils, Wallet, $translate, BMA, $q
 
   $scope.onSettingsChanged = function() {
     if (!$scope.loading) {
-      Wallet.data.settings.useRelative = $scope.formData.useRelative;
-      Wallet.data.settings.node = $scope.formData.node;
-      Wallet.data.settings.locale.id = $scope.formData.locale.id;
-      Wallet.data.settings.useLocalStorage = $scope.formData.useLocalStorage;
+      angular.merge(Wallet.data.settings, $scope.formData);
       Wallet.store();
     }
   };
-  $scope.$watch('formData.useRelative', $scope.onSettingsChanged, true);
-  $scope.$watch('formData.node', $scope.onSettingsChanged, true);
-  $scope.$watch('formData.locale', $scope.onSettingsChanged, true);
-  $scope.$watch('formData.useLocalStorage', $scope.onSettingsChanged, true);
+  $scope.$watch('formData', $scope.onSettingsChanged, true);
 
   // Set Ink
   $timeout(function() {
diff --git a/www/js/services/wallet-services.js b/www/js/services/wallet-services.js
index f312494538c6259570ff7da5c48201a256664170..5eb79b4c47284612128b9d1bef108b88dcb61cf8 100644
--- a/www/js/services/wallet-services.js
+++ b/www/js/services/wallet-services.js
@@ -12,8 +12,8 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
       useRelative: true,
       timeWarningExpire: 129600 /*TODO: =1.5j est-ce suffisant ?*/,
       useLocalStorage: false,
-      node: BMA.node.url,
-      locale: {id: $translate.use()}
+      rememberMe: false,
+      node: BMA.node.url
     },
 
     data = {
@@ -32,7 +32,7 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
         medianTime: null,
         history: {},
         requirements: {},
-        isMember: false,
+        isMember: false,  
         loaded: false,
         blockUid: null,
         members: [],
@@ -40,13 +40,14 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
         settings: {
           useRelative: defaultSettings.useRelative,
           timeWarningExpire: defaultSettings.timeWarningExpire,
-          locale: defaultSettings.locale,
+          locale: {id: $translate.use()},
           useLocalStorage: defaultSettings.useLocalStorage,
+          rememberMe: defaultSettings.rememberMe,
           node: defaultSettings.node
         }
     },
 
-    resetData = function(resetSettings) {
+    resetData = function() {
       data.pubkey= null;
       data.keypair ={
                 signSk: null,
@@ -66,11 +67,13 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
       data.blockUid = null;
       data.members = [];
       data.avatar = null;
-      if (!!resetSettings) {
+      if (!data.settings.useLocalStorage) {
         data.settings = {
           useRelative: defaultSettings.useRelative,
           timeWarningExpire: defaultSettings.timeWarningExpire,
+          locale: {id: $translate.use()},
           useLocalStorage: defaultSettings.useLocalStorage,
+          rememberMe: defaultSettings.rememberMe,
           node: BMA.node.url // If changed, use the updated url
         };
       }
@@ -148,6 +151,9 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
                     // Copy result to properties
                     data.pubkey = CryptoUtils.util.encode_base58(keypair.signPk);
                     data.keypair = keypair;
+                    if (data.settings.useLocalStorage) {
+                      store();
+                    }
                     resolve(data);
                 }
             );
@@ -157,11 +163,8 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
     logout = function(username, password) {
       return $q(function(resolve, reject) {
 
-        var resetSettings = !data.settings.useLocalStorage;
-        resetData(resetSettings);
-        if (data.settings.useLocalStorage) {
-          store();
-        }
+        resetData(); // will reset keypair
+        store(); // store (if local storage enable)
         resolve();
       });
     },
@@ -174,7 +177,7 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
       if (data.settings.useLocalStorage) {
         localStorage.setObject('CESIUM_SETTINGS', data.settings);
 
-        if (isLogin()) {
+        if (isLogin() && data.settings.rememberMe) {
           var dataToStore = {
             keypair: data.keypair,
             pubkey: data.pubkey
@@ -191,7 +194,7 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
       }
     },
 
-    restore = function(enableLoadData) {
+    restore = function() {
       return $q(function(resolve, reject){
         var settings = localStorage.getObject('CESIUM_SETTINGS');
         var dataStr = localStorage.get('CESIUM_DATA');
@@ -214,15 +217,6 @@ angular.module('cesium.wallet.services', ['ngResource', 'cesium.bma.services', '
               data.keypair = storedData.keypair;
               data.pubkey = storedData.pubkey;
               data.loaded = false;
-              if (enableLoadData) {
-                loadData()
-                .then(function() {
-                  resolve();
-                })
-                .catch(function(err) {
-                  reject(err);
-                });
-              }
             }
             resolve();
           })
diff --git a/www/templates/settings/settings.html b/www/templates/settings/settings.html
index e4fce26d1a9c34e03ca752f15183abbc4c5b42c0..7348292335083b9433f71849ae8a3b22f7213027 100644
--- a/www/templates/settings/settings.html
+++ b/www/templates/settings/settings.html
@@ -23,6 +23,16 @@
         </select>
       </label>
 
+      <div class="item item-toggle dark">
+        {{'SETTINGS.REMEMBER_ME' | translate}}
+        <label class="toggle toggle-royal">
+          <input type="checkbox" ng-model="formData.rememberMe" >
+          <div class="track">
+            <div class="handle"></div>
+          </div>
+        </label>
+      </div>
+
       <span class="item item-divider">
         {{'SETTINGS.TECHNICAL_SETTINGS' | translate}}
       </span>
@@ -42,5 +52,6 @@
         </label>
       </div>
 
+
     </ion-content>
 </ion-view>