Index: src/Fragmentation/SetValues/IndexedVectors.cpp
===================================================================
--- src/Fragmentation/SetValues/IndexedVectors.cpp	(revision 8b58ac216014d5bef5ecc26c850653adf4ddd5aa)
+++ src/Fragmentation/SetValues/IndexedVectors.cpp	(revision a67a041130640966bf105d1d86850cc600a3e6b8)
@@ -57,12 +57,14 @@
         +toString(vectoriter->size())+" different to FixedSize "
         +toString(FixedSize)+".");
+    if (*indexiter != (size_t)DropIndex) { // skip all force vectors associated to -1
 #ifndef NDEBUG
-    std::pair<indexedvectors_t::iterator, bool> inserter =
+      std::pair<indexedvectors_t::iterator, bool> inserter =
 #endif
-    vectors.insert( std::make_pair( *indexiter, *vectoriter) );
-    ASSERT( inserter.second,
-        "IndexedVectors::IndexedVectors() - index "
-        +toString(inserter.first->first)+" already present with vector "
-        +toString(inserter.first->second)+".");
+      vectors.insert( std::make_pair( *indexiter, *vectoriter) );
+      ASSERT( inserter.second,
+          "IndexedVectors::IndexedVectors() - index "
+          +toString(inserter.first->first)+" already present with vector "
+          +toString(inserter.first->second)+".");
+    }
   }
 }
Index: src/Fragmentation/SetValues/IndexedVectors.hpp
===================================================================
--- src/Fragmentation/SetValues/IndexedVectors.hpp	(revision 8b58ac216014d5bef5ecc26c850653adf4ddd5aa)
+++ src/Fragmentation/SetValues/IndexedVectors.hpp	(revision a67a041130640966bf105d1d86850cc600a3e6b8)
@@ -16,5 +16,4 @@
 #include <iosfwd>
 #include <map>
-#include <set>
 #include <vector>
 
@@ -41,7 +40,11 @@
   typedef std::vector<vector_t> vectors_t;
   //!> typedef for the ordered indices matching the bunch of vectors
-  typedef std::set<index_t> indices_t;
+  typedef std::vector<index_t> indices_t;
   //!> typedef for a bunch of indexed vectors
   typedef std::map<index_t, vector_t> indexedvectors_t;
+
+  enum SpecificIndices_t {
+    DropIndex = -1
+  };
 
   /** Default constructor for class IndexedVectors.
@@ -52,5 +55,7 @@
   /** Constructor for class IndexedVectors.
    *
-   * We construct the internal map from \a _indices and \a _vectors.
+   * We construct the internal map from \a _indices and \a _vectors. For
+   * every index -1 contained in \a _indices the respective vector in
+   * \a _vectors is \b not added but silently dropped.
    *
    * \param _indices index to each vector
Index: src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.cpp
===================================================================
--- src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.cpp	(revision 8b58ac216014d5bef5ecc26c850653adf4ddd5aa)
+++ src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.cpp	(revision a67a041130640966bf105d1d86850cc600a3e6b8)
@@ -101,4 +101,24 @@
 }
 
+
+/** UnitTest for cstor's
+ */
+void IndexedVectorsTest::Constructor_Test()
+{
+  // check whether -1 is dropped
+  IndexedVectors::indices_t indices;
+  indices += 1,-1,3;
+  IndexedVectors::vectors_t vectors;
+  vectors.push_back(ones);
+  vectors.push_back(twos);
+  vectors.push_back(threes);
+  IndexedVectors testivectors(indices, vectors);
+
+  CPPUNIT_ASSERT_EQUAL( (size_t)2, testivectors.vectors.size() );
+  CPPUNIT_ASSERT_EQUAL( ones, testivectors.vectors[1] );
+  CPPUNIT_ASSERT_EQUAL( threes, testivectors.vectors[3] );
+  CPPUNIT_ASSERT( testivectors.vectors.find(-1) == testivectors.vectors.end() );
+}
+
 /** UnitTest for operator+=()
  */
Index: src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.hpp
===================================================================
--- src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.hpp	(revision 8b58ac216014d5bef5ecc26c850653adf4ddd5aa)
+++ src/Fragmentation/SetValues/unittests/IndexedVectorsUnitTest.hpp	(revision a67a041130640966bf105d1d86850cc600a3e6b8)
@@ -24,4 +24,5 @@
 {
     CPPUNIT_TEST_SUITE( IndexedVectorsTest) ;
+    CPPUNIT_TEST ( Constructor_Test );
     CPPUNIT_TEST ( operatorPlusEqual_Test );
     CPPUNIT_TEST ( operatorMinusEqual_Test );
@@ -31,4 +32,5 @@
       void setUp();
       void tearDown();
+      void Constructor_Test();
       void operatorPlusEqual_Test();
       void operatorMinusEqual_Test();
