diff --git a/addons/web/static/src/js/tour.js b/addons/web/static/src/js/tour.js
index ffe60eced96f836fbdd17e03bfd3dbe26e775f80..bebb59d7210371050cc3225f3fb98acfa8f166ab 100644
--- a/addons/web/static/src/js/tour.js
+++ b/addons/web/static/src/js/tour.js
@@ -75,7 +75,7 @@ var Tour = {
         if (!tour) {
             return Tour.error(null, "Can't run '"+tour_id+"' (tour undefined)");
         }
-        console.log("Tour '"+tour_id+"' Begin from run method");
+        Tour.log("Tour '"+tour_id+"' Begin from run method", true);
         var state = Tour.getState();
         if (state) {
              if (state.mode === "test") {
@@ -311,7 +311,7 @@ var Tour = {
                 "step_id": 0
             };
             window.location.hash = "";
-            console.log("Tour '"+state.id+"' Begin from url hash");
+            Tour.log("Tour '"+state.id+"' Begin from url hash");
             Tour.saveState(state.id, state.mode, state.step_id, 0);
         }
         if (!state.id) {
@@ -321,6 +321,14 @@ var Tour = {
         state.step = state.tour && state.tour.steps[state.step_id === -1 ? 0 : state.step_id];
         return state;
     },
+    log: function (message, add_user) {
+        if (add_user) {
+            var user = $(".navbar .dropdown:has(>.js_usermenu) a:first, .navbar .oe_topbar_name").text();
+            if (!user && $('a[href*="/login"]')) user = 'Public User';
+            message += " (" + (user||"").replace(/^\s*|\s*$/g, '') + ")";
+        }
+        console.log(message);
+    },
     error: function (step, message) {
         var state = Tour.getState();
         message += '\n tour: ' + state.id
@@ -332,7 +340,7 @@ var Tour = {
             + (step ? '\n waitFor: ' + Boolean(!step.waitFor || $(step.waitFor).size()) : '' )
             + "\n localStorage: " + JSON.stringify(localStorage)
             + '\n\n' + $("body").html();
-        console.log(message);
+        Tour.log(message, true);
         Tour.endTour();
     },
     lists: function () {
@@ -363,7 +371,7 @@ var Tour = {
         clearTimeout(Tour.timer);
         clearTimeout(Tour.testtimer);
         Tour.closePopover();
-        console.log("Tour reset");
+        Tour.log("Tour reset");
     },
     running: function () {
         var state = Tour.getState();
@@ -373,7 +381,7 @@ var Tour = {
                 Tour.load_template().then(Tour.running);
                 return;
             }
-            console.log("Tour '"+state.id+"' is running");
+            Tour.log("Tour '"+state.id+"' is running", true);
             Tour.registerSteps(state.tour, state.mode);
             Tour.nextStep();
         } else {
@@ -381,7 +389,7 @@ var Tour = {
                 return Tour.error(state.step, "Tour '"+state.id+"' undefined");
             }
             Tour.saveState(state.id, state.mode, state.step_id, state.number-1, state.wait+1);
-            console.log("Tour '"+state.id+"' wait for running (tour undefined)");
+            Tour.log("Tour '"+state.id+"' wait for running (tour undefined)");
             setTimeout(Tour.running, Tour.retryRunningDelay);
         }
     },
@@ -441,7 +449,7 @@ var Tour = {
         Tour.saveState(state.id, state.mode, step.id, state.number);
 
         if (step.id !== state.step_id) {
-            console.log("Tour '"+state.id+"' Step: '" + (step._title || step.title) + "' (" + (new Date().getTime() - this.time) + "ms)");
+            Tour.log("Tour '"+state.id+"' Step: '" + (step._title || step.title) + "' (" + (new Date().getTime() - this.time) + "ms)");
         }
 
         Tour.autoTogglePopover(true);
@@ -473,11 +481,11 @@ var Tour = {
         var test = state.step && state.step.id >= state.tour.steps.length-1;
         Tour.reset();
         if (test) {
-            console.log("Tour '"+state.id+"' finish: ok");
-            console.log('ok');
+            Tour.log("Tour '"+state.id+"' finish: ok");
+            Tour.log('ok');
         } else {
-            console.log("Tour '"+state.id+"' finish: error");
-            console.log('error');
+            Tour.log("Tour '"+state.id+"' finish: error");
+            Tour.log('error');
         }
     },
     autoNextStep: function (tour, step) {
diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js
index 61a60b2b0c5c30ce4ab5ab8c9167dc05e53954c1..16304f95d01b82319a27f57746456868b4de8584 100644
--- a/addons/website/static/src/js/website.snippets.editor.js
+++ b/addons/website/static/src/js/website.snippets.editor.js
@@ -975,12 +975,10 @@
         },
         clean_for_save: function () {
             this._super();
-            $(".carousel").find(".item").removeClass("next prev left right active");
+            this.$target.find(".item").removeClass("next prev left right active");
+            this.$target.find(".item:first").addClass("active");
             this.$indicators.find('li').removeClass('active');
             this.$indicators.find('li:first').addClass('active');
-            if(!this.$target.find(".item.active").length) {
-                this.$target.find(".item:first").addClass("active");
-            }
         },
         start : function () {
             var self = this;
diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py
index a0ec9bfd3a9f608db24dde81f1092b51378057ac..60785910834f865aea5e0917a22e52f6f99bd0b8 100644
--- a/addons/website_sale/models/sale_order.py
+++ b/addons/website_sale/models/sale_order.py
@@ -176,9 +176,10 @@ class website(orm.Model):
                 fiscal_position = sale_order.fiscal_position and sale_order.fiscal_position.id or False
 
                 values = sale_order_obj.onchange_partner_id(cr, SUPERUSER_ID, [sale_order_id], partner.id, context=context)['value']
-                order_lines = map(int,sale_order.order_line)
-                values.update(sale_order_obj.onchange_fiscal_position(cr, SUPERUSER_ID, [],
-                    values['fiscal_position'], [[6, 0, order_lines]], context=context)['value'])
+                if values.get('fiscal_position'):
+                    order_lines = map(int,sale_order.order_line)
+                    values.update(sale_order_obj.onchange_fiscal_position(cr, SUPERUSER_ID, [],
+                        values['fiscal_position'], [[6, 0, order_lines]], context=context)['value'])
 
                 values['partner_id'] = partner.id
                 sale_order_obj.write(cr, SUPERUSER_ID, [sale_order_id], values, context=context)