291a292,294
>     def residues(self):
>         return [ Residue(res) for res in ob.OBResidueIter(self.OBMol) ]
>     @property
577c580
<        implicitvalence, isotope, partialcharge, spin, type,
---
>        implicitvalence, isotope, partialcharge, residue, spin, type,
618a622,623
>     def residue(self): return Residue(self.OBAtom.GetResidue())
>     @property
629a635,672
>         
> class Residue(object):
>     """Represent a Pybel residue.
> 
>     Required parameter:
>        OBResidue -- an Open Babel OBResidue
> 
>     Attributes:
>        atomicmass, atomicnum, cidx, coords, coordidx, exactmass,
>        formalcharge, heavyvalence, heterovalence, hyb, idx,
>        implicitvalence, isotope, partialcharge, spin, type,
>        valence, vector.
> 
>     (refer to the Open Babel library documentation for more info).
> 
>     The original Open Babel atom can be accessed using the attribute:
>        OBResidue
>     """
> 
>     def __init__(self, OBResidue):
>         self.OBResidue = OBResidue
> 
>     @property
>     def atoms(self):
>         return [ Atom(atom) for atom in ob.OBResidueAtomIter(self.OBResidue) ]
>     @property
>     def idx(self): return self.OBResidue.GetIdx()
>     @property
>     def name(self): return self.OBResidue.GetName()
>     
>     def __iter__(self):
>         """Iterate over the Atoms of the Residue.
> 
>         This allows constructions such as the following:
>            for atom in residue:
>                print atom
>         """
>         return iter(self.atoms)
