diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js
index 245a393e5dc5e467328e9ba4fdae0ef46d1254ef..0f880533181ef6eab160691c4d44614c5c3b0adf 100644
--- a/www/js/controllers/settings-controllers.js
+++ b/www/js/controllers/settings-controllers.js
@@ -84,10 +84,18 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t
     $q.all([
       csSettings.ready(),
       csCurrency.parameters()
+        .then(function(parameters) {
+          return parameters && parameters.avgGenTime;
+        })
+        // Make sure to continue even if node is down - Fix #788
+        .catch(function(err) {
+          console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)", err);
+          return {avgGenTime: 300};
+        })
         .then(function(parameters) {
           _.each($scope.blockValidityWindows, function(blockCount) {
             if (blockCount > 0) {
-              $scope.blockValidityWindowLabels[blockCount].labelParams.time=parameters.avgGenTime * blockCount;
+              $scope.blockValidityWindowLabels[blockCount].labelParams.time= parameters.avgGenTime * blockCount;
             }
           });
         })
@@ -153,7 +161,7 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t
     .then(function(newNode) {
       if (newNode.host === $scope.formData.node.host &&
         newNode.port === $scope.formData.node.port &&
-        newNode.useSsl === $scope.formData.node.useSsl) {
+        newNode.useSsl === $scope.formData.node.useSsl && !$scope.formData.node.temporary) {
         return; // same node = nothing to do
       }
       UIUtils.loading.show();
@@ -169,8 +177,8 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t
               });
           }
           UIUtils.loading.hide();
-          $scope.formData.node = newNode;
-          delete $scope.formData.temporary;
+          angular.merge($scope.formData.node, newNode);
+          delete $scope.formData.node.temporary;
           BMA.copy(nodeBMA);
           $scope.bma = BMA;
 
diff --git a/www/js/services/settings-services.js b/www/js/services/settings-services.js
index d6e9003508a9fd6f56f308d474fe6216fb902d8b..ae153061d2a8465a7319d181dc746e5258a1912d 100644
--- a/www/js/services/settings-services.js
+++ b/www/js/services/settings-services.js
@@ -199,7 +199,7 @@ angular.module('cesium.settings.services', ['ngApi', 'cesium.config'])
     angular.merge(data, newData);
 
     // Delete temporary properties, if false
-    if (!data.node.temporary) delete data.node.temporary;
+    if (!newData.node.temporary || !data.node.temporary) delete data.node.temporary;
 
     // Always force the usage of default settings
     // This is a workaround for DEV (TODO: implement edition in settings ?)