There is no way to avoid the cast here. clone() returns Object, if it is java.util.Stack, it is not making use of co-variant return types.
If this is not java.util.Stack, then don't implement clone() - it's really hard to get it right. Make a copy-constructor instead.