There are two rules that sum up my thinking on this. One comes from Joshua Bloch and the other comes from the gang of four:
1) Favor composition over inheritance
2) Inherit interfaces and not implementations
Inheritance is abused in OO programming and allowing multiple inheritance is inviting more abuse. We should program to interfaces and use those to support multiple inheritance. We should combine separate interfaces in a single class in order to provide the appearance of multiple inheritance. On the good side, the author of the original article did write a post script in which he admitted that he could get around his problem by using interfaces. And that is exactly the right way to do it!