diff --git a/include/llvm/Instruction.h b/include/llvm/Instruction.h
index 9bd0bd2384b..d21cd422e46 100644
--- a/include/llvm/Instruction.h
+++ b/include/llvm/Instruction.h
@@ -30,9 +30,6 @@ protected:
   Instruction(const Type *Ty, unsigned iType, const std::string &Name = "",
               Instruction *InsertBefore = 0);
 public:
-  virtual ~Instruction() {
-    assert(Parent == 0 && "Instruction still embedded in basic block!");
-  }
 
   // Specialize setName to handle symbol table majik...
   virtual void setName(const std::string &name, SymbolTable *ST = 0);
diff --git a/include/llvm/User.h b/include/llvm/User.h
index aa29f6dae38..2175ad0ae06 100644
--- a/include/llvm/User.h
+++ b/include/llvm/User.h
@@ -20,7 +20,6 @@ protected:
   std::vector<Use> Operands;
 public:
   User(const Type *Ty, ValueTy vty, const std::string &name = "");
-  virtual ~User() { dropAllReferences(); }
 
   inline Value *getOperand(unsigned i) { 
     assert(i < Operands.size() && "getOperand() out of range!");