if (!isAbstract() && clone == null){
try {
//instanciate the PersistentObjectItf clone
clone = newSpeedoPOInstance(sp.getClass());
PersistentObjectItf spClone = (PersistentObjectItf)clone;
spClone.speedoSetEncodedPName(pm.getEncodedPName(sp));
spClone.setCeAge(0);
spClone.speedoIsActive(false);
//instanciate the clone of the fields
StateItf fieldsClone = sp.speedoCreateState();
spClone.speedoSetReferenceState(fieldsClone);