Babel considers the Oxygen attached to an H in the Carboxylic acid as sp2 while this IMO is an sp3 oxygen.
To reproduce perform:
echo 'CC(=O)O' | babel -h -ismi -omolreport
Both Oxygens are sp2.
The rule that is used to do this match is:
INTHYB [o,$(O=*),$(O[#6,#7,#8]=,:)] 2 #sp2 oxygen
explicitly the: O[#6,#7,#8]=,: part
I presume this should become [OD1][#6,#7,#8]=,:* but I'm not sure which other changes this induces which are indeed sp2 Oxygens.
The problem is OS independent. Anyway, I used OpenBabel 2.3.0 under Linux.