diff --git a/Control/AthenaMonitoringKernel/AthenaMonitoringKernel/HistogramFiller.h b/Control/AthenaMonitoringKernel/AthenaMonitoringKernel/HistogramFiller.h
index 59f1e5f31bbf74fb59a8607eb7226331cfb5da10..60e5cb7560171dd2118d3bf8a237180eab2bb4a2 100644
--- a/Control/AthenaMonitoringKernel/AthenaMonitoringKernel/HistogramFiller.h
+++ b/Control/AthenaMonitoringKernel/AthenaMonitoringKernel/HistogramFiller.h
@@ -14,6 +14,8 @@
 #include "AthenaMonitoringKernel/IHistogramProvider.h"
 #include "AthenaMonitoringKernel/IMonitoredVariable.h"
 
+class TProfile;
+
 namespace Monitored {
 
   // Forward declare generic histogram filler (see HistogramFillerUtils.h)
diff --git a/Control/AthenaMonitoringKernel/src/HistogramFiller/VecHistogramFiller1D.h b/Control/AthenaMonitoringKernel/src/HistogramFiller/VecHistogramFiller1D.h
index 27ecc1c19d164512785a5911276f544c6c78052d..fd212d1f54c519520ddaabff8b2c06695a641943 100644
--- a/Control/AthenaMonitoringKernel/src/HistogramFiller/VecHistogramFiller1D.h
+++ b/Control/AthenaMonitoringKernel/src/HistogramFiller/VecHistogramFiller1D.h
@@ -15,7 +15,7 @@ namespace Monitored {
 
 
     virtual unsigned fill(const HistogramFiller::VariablesPack& vars) const override {
-      if ( ATH_UNLIKELY( vars.var[0] == nullptr or vars.size() != 0 ) ) { return 0; }
+      if ( ATH_UNLIKELY(vars.size() == 0 or vars.var[0] == nullptr) ) { return 0; }
 
       std::function<bool(size_t)> cutMaskAccessor;
       if (vars.cut) {
@@ -33,7 +33,7 @@ namespace Monitored {
       auto histogram = this->histogram<TH1>();
       const unsigned offset = m_histDef->kVecUO ? 0 : 1;
       for (unsigned i = 0; i < vars.var[0]->size(); ++i) {
-        if (cutMaskAccessor && cutMaskAccessor(i)) {
+        if (cutMaskAccessor == nullptr or cutMaskAccessor(i)) {
           const double value = vars.var[0]->get(i);
           histogram->AddBinContent(i+offset, value);
           histogram->SetEntries(histogram->GetEntries() + value);
diff --git a/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable1DTestSuite.cxx b/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable1DTestSuite.cxx
index 4133e65d0efb96343a29913f455dee260cac8006..9723b256e8accd9b03bfeb86b79ffbc852db6946 100644
--- a/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable1DTestSuite.cxx
+++ b/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable1DTestSuite.cxx
@@ -23,6 +23,7 @@
 #include "AthenaMonitoringKernel/MonitoredScalar.h"
 #include "../src/HistogramFiller/HistogramFillerRebinable.h"
 
+#include "mocks/MockHistogramDef.h"
 #include "mocks/MockHistogramProvider.h"
 
 using namespace std;
@@ -223,7 +224,7 @@ class HistogramFillerRebinable1DTestSuite {
   private:
     MsgStream m_log;
 
-    HistogramDef m_histogramDef;
+    MockHistogramDef m_histogramDef;
     shared_ptr<MockHistogramProvider> m_histogramProvider;
     shared_ptr<TH1D> m_histogram;
 
diff --git a/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable2DTestSuite.cxx b/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable2DTestSuite.cxx
index f55abb00313aa8dc81bd34a738c6fe8c2514d0f8..dfc5328225e65a1dca76eb4dd83b4bcaaa850abb 100644
--- a/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable2DTestSuite.cxx
+++ b/Control/AthenaMonitoringKernel/test/HistogramFillerRebinable2DTestSuite.cxx
@@ -26,6 +26,7 @@
 #include "AthenaMonitoringKernel/MonitoredScalar.h"
 #include "../src/HistogramFiller/HistogramFillerRebinable.h"
 
+#include "mocks/MockHistogramDef.h"
 #include "mocks/MockHistogramProvider.h"
 
 using namespace std;
@@ -122,7 +123,7 @@ class HistogramFillerRebinable2DTestSuite {
   private:
     MsgStream m_log;
 
-    HistogramDef m_histogramDef;
+    MockHistogramDef m_histogramDef;
     shared_ptr<MockHistogramProvider> m_histogramProvider;
     shared_ptr<TH2D> m_histogram;
 
diff --git a/Control/AthenaMonitoringKernel/test/HistogramFillerVec1DTestSuite.cxx b/Control/AthenaMonitoringKernel/test/HistogramFillerVec1DTestSuite.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..c4f9c011a55fdbe595534a52cb76d347bd2800a9
--- /dev/null
+++ b/Control/AthenaMonitoringKernel/test/HistogramFillerVec1DTestSuite.cxx
@@ -0,0 +1,192 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include <list>
+#include <functional>
+#include <memory>
+
+#include "TestTools/initGaudi.h"
+#include "TestTools/expect.h"
+#include "GaudiKernel/MsgStream.h"
+#include "GaudiKernel/ITHistSvc.h"
+#include "AthenaKernel/getMessageSvc.h"
+
+#include "TH1.h"
+
+#include "AthenaMonitoringKernel/MonitoredCollection.h"
+#include "../src/HistogramFiller/VecHistogramFiller1D.h"
+
+#include "mocks/MockHistogramDef.h"
+#include "mocks/MockHistogramProvider.h"
+
+using namespace std;
+using namespace Monitored;
+
+#define REGISTER_TEST_CASE(TEST_CASE_NAME, KVECUO) registerTestCase(&HistogramFillerVec1DTestSuite::TEST_CASE_NAME, #TEST_CASE_NAME, KVECUO)
+
+class HistogramFillerVec1DTestSuite {
+  // ==================== All registered test cases ====================
+  private:
+    list<function<void(void)>> registeredTestCases() {
+      return {
+        REGISTER_TEST_CASE(test_fillWithVector, false),
+        REGISTER_TEST_CASE(test_fillWithShortVector, false),
+        REGISTER_TEST_CASE(test_fillWithVectorUO, true),
+        REGISTER_TEST_CASE(test_fillWithShortVectorUO, true)
+      };
+    }
+
+  // ==================== Test code ====================
+  private:
+    void beforeEach(bool kVecUO) {
+        if (kVecUO) {
+            m_histogramDef.kVecUO = true;
+        } else {
+            m_histogramDef.kVec = true;
+        }
+        m_histogramProvider.reset(new MockHistogramProvider());
+        m_histogram.reset(new TH1D("MockHistogram", "Mock Histogram", 5, 0.0, 5.0));
+        m_testObj.reset(new VecHistogramFiller1D(m_histogramDef, m_histogramProvider));
+
+        m_histogramProvider->mock_histogram = [this]() { return m_histogram.get(); };
+    }
+
+    void afterEach() {
+    }
+
+    void test_fillWithVector() {
+
+      using Coll = vector<double>;
+      Coll values({1., 2., 3., 4., 5.});
+      auto var = Monitored::Collection("values", values);
+
+      HistogramFiller::VariablesPack vars({&var});
+
+      VALUE(m_histogram->GetXaxis()->GetNbins()) EXPECTED(5);
+      VALUE(m_histogram->GetXaxis()->GetXmin()) EXPECTED(0.0);
+      VALUE(m_histogram->GetXaxis()->GetXmax()) EXPECTED(5.0);
+
+      m_testObj->fill(vars);
+
+      for (unsigned i: {0, 6}) {
+          VALUE(m_histogram->GetBinContent(i)) EXPECTED(0.0);
+      }
+      for (unsigned i = 0; i != values.size(); ++ i) {
+        VALUE(m_histogram->GetBinContent(i+1)) EXPECTED(values[i]);
+      }
+    }
+
+    void test_fillWithShortVector() {
+
+      using Coll = vector<double>;
+      Coll values({1., 2., 3.});
+      auto var = Monitored::Collection("values", values);
+
+      HistogramFiller::VariablesPack vars({&var});
+
+      VALUE(m_histogram->GetXaxis()->GetNbins()) EXPECTED(5);
+      VALUE(m_histogram->GetXaxis()->GetXmin()) EXPECTED(0.0);
+      VALUE(m_histogram->GetXaxis()->GetXmax()) EXPECTED(5.0);
+
+      m_testObj->fill(vars);
+
+      for (unsigned i: {0, 4, 5, 6}) {
+          VALUE(m_histogram->GetBinContent(i)) EXPECTED(0.0);
+      }
+      for (unsigned i = 0; i != values.size(); ++ i) {
+        VALUE(m_histogram->GetBinContent(i+1)) EXPECTED(values[i]);
+      }
+    }
+
+    void test_fillWithVectorUO() {
+
+      using Coll = vector<double>;
+      Coll values({1., 2., 3., 4., 5., 6., 7.});
+      auto var = Monitored::Collection("values", values);
+
+      HistogramFiller::VariablesPack vars({&var});
+
+      VALUE(m_histogram->GetXaxis()->GetNbins()) EXPECTED(5);
+      VALUE(m_histogram->GetXaxis()->GetXmin()) EXPECTED(0.0);
+      VALUE(m_histogram->GetXaxis()->GetXmax()) EXPECTED(5.0);
+
+      m_testObj->fill(vars);
+
+      for (unsigned i = 0; i != values.size(); ++ i) {
+        VALUE(m_histogram->GetBinContent(i)) EXPECTED(values[i]);
+      }
+    }
+
+    void test_fillWithShortVectorUO() {
+
+      using Coll = vector<double>;
+      Coll values({1., 2., 3., 4., 5.});
+      auto var = Monitored::Collection("values", values);
+
+      HistogramFiller::VariablesPack vars({&var});
+
+      VALUE(m_histogram->GetXaxis()->GetNbins()) EXPECTED(5);
+      VALUE(m_histogram->GetXaxis()->GetXmin()) EXPECTED(0.0);
+      VALUE(m_histogram->GetXaxis()->GetXmax()) EXPECTED(5.0);
+
+      m_testObj->fill(vars);
+
+      for (unsigned i: {5, 6}) {
+          VALUE(m_histogram->GetBinContent(i)) EXPECTED(0.0);
+      }
+      for (unsigned i = 0; i != values.size(); ++ i) {
+        VALUE(m_histogram->GetBinContent(i)) EXPECTED(values[i]);
+      }
+    }
+
+  // ==================== Helper methods ====================
+  private:
+
+  // ==================== Initialization & run ====================
+  public:
+    HistogramFillerVec1DTestSuite()
+      : m_log(Athena::getMessageSvc(), "HistogramFillerVec1DTestSuite") {
+    }
+
+    void run() {
+      for (function<void(void)> testCase : registeredTestCases()) {
+        testCase();
+      }
+    }
+
+  // ==================== Test case registration ====================
+  private:
+    typedef void (HistogramFillerVec1DTestSuite::*TestCase)(void);
+
+    function<void(void)> registerTestCase(TestCase testCase, const string& testCaseName, bool kVecUO) {
+      return [this, testCase, testCaseName, kVecUO]() {
+        m_log << MSG::INFO << "Current test case: " << testCaseName << endmsg;
+        beforeEach(kVecUO);
+        invoke(testCase, this);
+        afterEach();
+      };
+    }
+
+  // ==================== Properties ====================
+  private:
+    MsgStream m_log;
+
+    MockHistogramDef m_histogramDef;
+    shared_ptr<MockHistogramProvider> m_histogramProvider;
+    shared_ptr<TH1D> m_histogram;
+
+    shared_ptr<VecHistogramFiller1D> m_testObj;
+};
+
+int main() {
+  ISvcLocator* pSvcLoc;
+
+  if (!Athena_test::initGaudi("GenericMon.txt", pSvcLoc)) {
+    throw runtime_error("This test can not be run: GenericMon.txt is missing");
+  }
+
+  HistogramFillerVec1DTestSuite().run();
+
+  return 0;
+}