diff --git a/plugins/CoreHome/javascripts/calendar.js b/plugins/CoreHome/javascripts/calendar.js
index d4119de31b41065d1cd0ba698cfcac9711d6ac86..e1c68f851b35f3baacaee40543575203cafe03f5 100644
--- a/plugins/CoreHome/javascripts/calendar.js
+++ b/plugins/CoreHome/javascripts/calendar.js
@@ -354,7 +354,24 @@
         });
 
         var reloading = false;
-        var changePeriodOnClick = function (periodInput) {
+
+        var changePeriodWithPageReload = function (periodInput) {
+            var url = periodInput.val(),
+                period = broadcast.getValueFromUrl('period', url);
+
+            // if clicking on the selected period, change the period but not the date
+            if (period != 'range' && !reloading) {
+                // only reload if current period is different from selected
+                reloading = true;
+                selectedPeriod = period;
+                updateDate(piwik.currentDateString);
+                return true;
+            }
+
+            return false;
+        };
+
+        var changePeriodOnClickIfPeriodChanged = function (periodInput) {
             if (reloading) // if a click event resulted in reloading, don't reload again
             {
                 return;
@@ -366,11 +383,10 @@
             // if clicking on the selected period, change the period but not the date
             if (selectedPeriod == period && selectedPeriod != 'range') {
                 // only reload if current period is different from selected
-                if (piwik.period != selectedPeriod && !reloading) {
-                    reloading = true;
-                    selectedPeriod = period;
-                    updateDate(piwik.currentDateString);
+                if (piwik.period != selectedPeriod) {
+                    return changePeriodWithPageReload(periodInput);
                 }
+
                 return true;
             }
 
@@ -379,12 +395,12 @@
 
         $("#otherPeriods").find("label,input").on('dblclick', function (e) {
             var id = $(e.target).attr('for');
-            changePeriodOnClick($('#' + id));
+            changePeriodOnClickIfPeriodChanged($('#' + id));
         });
 
         $("#otherPeriods").find("label,input").on('dblclick', function (e) {
             var id = $(e.target).attr('for');
-            changePeriodOnClick($('#' + id));
+            changePeriodOnClickIfPeriodChanged($('#' + id));
         });
 
         // Apply date range button will reload the page with the selected range
@@ -393,7 +409,7 @@
                 var $selectedPeriod = $('#periodMore [name=period]:checked');
 
                 if (!$selectedPeriod.is('#period_id_range')) {
-                    changePeriodOnClick($selectedPeriod);
+                    changePeriodWithPageReload($selectedPeriod);
                     return true;
                 }
 
@@ -422,7 +438,7 @@
                 period = broadcast.getValueFromUrl('period', request_URL),
                 lastPeriod = selectedPeriod;
 
-            if (changePeriodOnClick($(e.target))) {
+            if (changePeriodOnClickIfPeriodChanged($(e.target))) {
                 return true;
             }