diff --git a/pub/trivia/vector_ops.cpp b/pub/trivia/vector_ops.cpp
index af1dc8658a2fd1e2ad4c4d095c3c51e9c9040ff4..b03c308d949872cf6467025f7662571dcc41792d 100644
--- a/pub/trivia/vector_ops.cpp
+++ b/pub/trivia/vector_ops.cpp
@@ -89,15 +89,16 @@ vector<size_t> triv::sorted_indices(vector<double> const& V)
 }
 
 
-//! Increments all members, or deletes them if they exceed the range 0...siz.
+//! Increments all members, provided they remain in the range 0...siz.
 
 void triv::increment_indices( vector<int>& v, int incr, int siz )
 {
     vector<int> ret;
     for( int k: v ){
         int kout = k+incr;
-        if ( 0<=kout && kout<siz )
-            ret.push_back( kout );
+        if ( kout<0 || kout>=siz )
+            return; // leave v unchanged
+        ret.push_back( kout );
     }
     v = ret;
 }