diff --git a/config/global.ini.php b/config/global.ini.php
index aad0fd33819af603d2863019042865ee83858ceb..00de6ff1732af8f9d9047c5648af8298eefc70ea 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -654,6 +654,10 @@ create_new_visit_when_campaign_changes = 1
 ; absent before, but is present now.
 create_new_visit_when_website_referrer_changes = 0
 
+; ONLY CHANGE THIS VALUE WHEN YOU DO NOT USE PIWIK ARCHIVING, SINCE THIS COULD CAUSE PARTIALLY MISSING ARCHIVE DATA
+; Whether to force a new visit at midnight for every visitor. Default 1.
+create_new_visit_after_midnight = 1
+
 ; maximum length of a Page Title or a Page URL recorded in the log_action.name table
 page_maximum_length = 1024;
 
diff --git a/plugins/CoreHome/Tracker/VisitRequestProcessor.php b/plugins/CoreHome/Tracker/VisitRequestProcessor.php
index e4e5a2ddf83ba07072eb0849e4def483e53cdad5..019965a958367f8ef678c71617b08140919c9473 100644
--- a/plugins/CoreHome/Tracker/VisitRequestProcessor.php
+++ b/plugins/CoreHome/Tracker/VisitRequestProcessor.php
@@ -10,6 +10,7 @@ namespace Piwik\Plugins\CoreHome\Tracker;
 
 use Piwik\Common;
 use Piwik\Date;
+use Piwik\Config;
 use Piwik\EventDispatcher;
 use Piwik\Exception\UnexpectedWebsiteFoundException;
 use Piwik\Tracker\Cache;
@@ -154,7 +155,9 @@ class VisitRequestProcessor extends RequestProcessor
         }
 
         $wasLastActionYesterday = $this->wasLastActionNotToday($visitProperties, $request);
-        if ($wasLastActionYesterday) {
+        $forceNewVisitAtMidnight = (bool) Config::getInstance()->Tracker['create_new_visit_after_midnight'];
+
+        if ($wasLastActionYesterday && $forceNewVisitAtMidnight) {
             Common::printDebug("Visitor detected, but last action was yesterday...");
 
             return true;