diff --git a/src/libs/zbxdbcache/dbcache.c b/src/libs/zbxdbcache/dbcache.c
index 9c1af3983c8..0841b1e6d74 100644
--- a/src/libs/zbxdbcache/dbcache.c
+++ b/src/libs/zbxdbcache/dbcache.c
@@ -2681,12 +2681,14 @@ static void	DCmass_prepare_history(ZBX_DC_HISTORY *history, zbx_history_sync_ite
 		{
 			if (SEC_PER_HOUR < (now - last_history_discard)) /* log once per hour */
 			{
-				zabbix_log(LOG_LEVEL_TRACE, "discarding history that is pointing to"
+				zabbix_log(LOG_LEVEL_WARNING, "discarding history that is pointing to"
 							" compressed history period");
 				last_history_discard = now;
 			}
 
-			h->flags |= ZBX_DC_FLAG_UNDEF;
+			dc_history_clean_value(h);
+			h->state = ITEM_STATE_NORMAL;
+			h->flags |= ZBX_DC_FLAG_NOVALUE;
 			continue;
 		}
 
@@ -2710,10 +2712,14 @@ static void	DCmass_prepare_history(ZBX_DC_HISTORY *history, zbx_history_sync_ite
 		}
 		else if (now - h->ts.sec > item->history_sec)
 		{
-			h->flags |= ZBX_DC_FLAG_NOHISTORY;
 			zabbix_log(LOG_LEVEL_WARNING, "item \"%s:%s\" value timestamp \"%s %s\" is outside history "
 					"storage period", item->host.host, item->key_orig,
 					zbx_date2str(h->ts.sec, NULL), zbx_time2str(h->ts.sec, NULL));
+
+			dc_history_clean_value(h);
+			h->state = ITEM_STATE_NORMAL;
+			h->flags |= ZBX_DC_FLAG_NOVALUE;
+			continue;
 		}
 
 		if (ITEM_VALUE_TYPE_FLOAT == item->value_type || ITEM_VALUE_TYPE_UINT64 == item->value_type)
@@ -2724,10 +2730,14 @@ static void	DCmass_prepare_history(ZBX_DC_HISTORY *history, zbx_history_sync_ite
 			}
 			else if (now - h->ts.sec > item->trends_sec)
 			{
-				h->flags |= ZBX_DC_FLAG_NOTRENDS;
 				zabbix_log(LOG_LEVEL_WARNING, "item \"%s:%s\" value timestamp \"%s %s\" is outside "
 						"trends storage period", item->host.host, item->key_orig,
 						zbx_date2str(h->ts.sec, NULL), zbx_time2str(h->ts.sec, NULL));
+
+				dc_history_clean_value(h);
+				h->state = ITEM_STATE_NORMAL;
+				h->flags |= ZBX_DC_FLAG_NOVALUE;
+				continue;
 			}
 		}
 		else
