it would appear that your plist is empty at the point where your debugger has reached that portion of code.
You might prefer to use the deque::at() function, which is bounds checked, and throws an out_of_range exception if you attempt to retrieve something from the deque which doesn't exist.
alternatively, you could check the element you're accessing against the size of plist
if( 0 < plist.size() )
{
stl_index nodes_per_element = plist[0].size();
deque<vector<stl_index> >::iterator it;
//etc.