A problem with O(1D)

Dear CCLers,
 Does anyone know how to calculate correctly the energy of an oxygen
 atom in the singlet state O(1D)? I am having a problem of evaluating
 the singlet-triplet energy difference E(S-T) = E[O(1D)] - E[O(3P)]
 whose experimental value is 190 kJ/mol. Using DFT methods (B3LYP and
 PW91) with small basis sets (6-31G*) significantly overestimates this
 energy splitting, giving E(S-T) = 270-280 kJ/mol. Calculation at
 CCSD(T)/6-311+G(3df) level of theory leads to a better result,
 however, it is still far from being acceptable, E(S-T) = 214 kJ/mol.
 So far I have found that it is the energy of O(1D) that is incorrect
 while the energy of O(3P) is reproduced properly. What goes wrong?
 The wavefunction for O(1D) seems to be correct - population analysis
 shows that it is symmetrical (2Px alpha) (2Px beta) (2Py alpha) (2Py
 Thank you in advance,
 Dr. Alexei Khalizov
 Department of Chemistry
 McGill University,
 801 Sherbrooke St. W.,
 Montreal, Quebec, CANADA,
 H3A 2K6
 Phone: (514) 398-6920
 Fax: (514) 398-2382