1) First you need to be sure that there are no more evolved ADT (Abstract Data Types):
select t.*
from DBA_TYPE_VERSIONS t
where Owner = 'USER'
and t.version# > 1;
You have to reset all this types before you can enable Edition Based Redefinition for a user.
ALTER TYPE *TYPE_NAME* RESET;
Restriction on RESET: You cannot specify RESET if the type has any table dependents (direct or indirect)
Link: ALTER TYPE Statement
2) If you have tables which are based on XML Schema's you'll have to move the definition to another schema and recreate the table based on that definition. It's a bit strange though, I had expecting that those types would be generated "NONEDITIONABLE" by default?
select *
from USER_XML_SCHEMAS;
Link: XML Schema Storage
3) If you are using Advanced Queueing, drop your queue's, and types and recreate the types with the NONEDITIONABLE property:
select * --> Look for "Object_Type" = Type_Name
from User_Queue_Tables;
drop queue ...;
drop type *TYPE_NAME*;
create NONEDITIONABLE type *TYPE_NAME* as ...;
create queue ...;
So, that did it for me