added some error codes, tried to eliminate unspecific return -1 where it made sense. This was SVN commit r1436.