Schema evolution rules not applied when loading from TTree

I have a class that has evolved from:

const int gkAliHLTDDLListSize = 30;
struct AliHLTEventDDL
{
  AliHLTUInt32_t fCount;
  AliHLTUInt32_t fList[gkAliHLTDDLListSize];
};
class AliHLTReadoutList : public TNamed
{
private:
  AliHLTEventDDL fReadoutList;
  ClassDef(AliHLTReadoutList, 2)
};

to the following:

const int gkAliHLTDDLListSize = 31;
struct AliHLTEventDDL
{
  AliHLTUInt32_t fCount;
  AliHLTUInt32_t fList[gkAliHLTDDLListSize];
};
class AliHLTReadoutList : public TNamed
{
private:
  AliHLTEventDDL fReadoutList;
  ClassDef(AliHLTReadoutList, 3)
};

I wrote a schema evolution rule to convert the old versions into new ones when reading the class:

#pragma read sourceClass="AliHLTReadoutList" version="[2]" targetClass="AliHLTReadoutList" \ source="AliHLTEventDDL fReadoutList" target="fReadoutList" \ code="{\ fReadoutList = onfile.fReadoutList;\ if (fReadoutList.fCount == (unsigned)gkAliHLTDDLListSizeV0)\ {\ fReadoutList.fList[30] = fReadoutList.fList[29];\ fReadoutList.fList[29] = fReadoutList.fList[28];\ fReadoutList.fList[28] = 0x0;\ fReadoutList.fCount = gkAliHLTDDLListSize;\ }\ }"
Everything works fine when streaming a class from TFile, but when the object was written to a TTree the schema evolution rules are never invoked. Why could this be? What am I doing wrong?

I think I may be dealing with a bug here.
I have created a minimal working example which demonstrates that the schema evolution rule is applied just fine when reading the object stored directly in a TFile, but when reading it from a TTree the rule is not applied at all.
schemaEvolutionExample.tar.gz (2.33 KB)

I decided that this must be a bug and added the following bug report:
savannah.cern.ch/bugs/index.php?69241