diff --git a/pub/lib/manip.cpp b/pub/lib/manip.cpp
index 5236db6a9dbf8b3b14588e80e99235eb3d761244..43040ec5bc2d09fcae5334344fc119be20d81a60 100644
--- a/pub/lib/manip.cpp
+++ b/pub/lib/manip.cpp
@@ -904,7 +904,9 @@ void NManip::zcoord_delete()
 
         RObjVecInt vsel = Tsel->to_index_list( fin->ZCo.size() );
         if (!vsel)
-            throw S("not a valid index list");
+            throw "Invalid index list '"+sel+"'; max index is "+S(fin->ZCo.size()-1);
+        if ( fin->nJ()>1 && fin->ZCo.size()-vsel->size()<1 )
+            throw "Cannot delete all z coordinates since there is more than one slice";
         vector<int> lis = vsel->v;
         sort( lis.begin(), lis.end() );
         reverse( lis.begin(), lis.end() );