diff --git a/src/program.c b/src/program.c
index 5cdad7da8a489a39a68fb80512e519c765d22be4..4272d8a8e053f230f1dad7968d017105f2e0c88c 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.202 2000/02/10 17:58:08 hubbe Exp $");
+RCSID("$Id: program.c,v 1.203 2000/02/13 05:09:04 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -1928,9 +1928,11 @@ int define_variable(struct pike_string *name,
 
       if(!(IDENTIFIERP(n)->id_flags & ID_INLINE) || compiler_pass!=1)
       {
-/* 	if(ID_FROM_INT(new_program, n)->type != type) */
-/* 	  my_yyerror("Illegal to redefine inherited variable " */
-/* 		     "with different type."); */
+ 	if(!match_types(ID_FROM_INT(new_program, n)->type, type))
+ 	  my_yyerror("Illegal to redefine inherited variable "
+ 		     "with different type.");
+
+	
 
 	if(!IDENTIFIER_IS_VARIABLE(ID_FROM_INT(new_program, n)->
 				   identifier_flags))
diff --git a/src/testsuite.in b/src/testsuite.in
index 4d79cf9ebcbdeec33f5e55a98097b46c7a8f3fbc..9fef2a23df38bc19be31460b055cb0f043fd4479 100644
--- a/src/testsuite.in
+++ b/src/testsuite.in
@@ -1,5 +1,5 @@
 dnl -*- Pike -*-
-test_true([["$Id: testsuite.in,v 1.276 2000/02/11 19:26:54 hubbe Exp $"]]);
+test_true([["$Id: testsuite.in,v 1.277 2000/02/13 05:09:05 hubbe Exp $"]]);
 
 cond([[all_constants()->_verify_internals]],
 [[
@@ -4448,17 +4448,17 @@ int a()
 
 test_compile_any(class A {int v;} class B {inherit A; int v;})
 test_compile_error_low(class A {int v;} class B {inherit A; float v;})
-test_compile_error_low(class A {int v;} class B {inherit A; mixed v;})
-test_compile_error_low(class A {mixed v;} class B {inherit A; int v;})
-test_compile_error_low(class A {public int v;} class B {inherit A; mixed v;})
-test_compile_error_low(class A { public { int v; } } class B {inherit A; mixed v;})
-test_compile_error_low(class A {public mixed v;} class B {inherit A; int v;})
+dnl test_compile_error_low(class A {int v;} class B {inherit A; mixed v;})
+dnl test_compile_error_low(class A {mixed v;} class B {inherit A; int v;})
+dnl test_compile_error_low(class A {public int v;} class B {inherit A; mixed v;})
+dnl test_compile_error_low(class A { public { int v; } } class B {inherit A; mixed v;})
+dnl test_compile_error_low(class A {public mixed v;} class B {inherit A; int v;})
 test_compile_error_low(class A {static int v;} class B {inherit A; float v;})
-test_compile_error_low(class A {static int v;} class B {inherit A; mixed v;})
-test_compile_error_low(class A {static mixed v;} class B {inherit A; int v;})
+dnl test_compile_error_low(class A {static int v;} class B {inherit A; mixed v;})
+dnl test_compile_error_low(class A {static mixed v;} class B {inherit A; int v;})
 test_compile_any(class A {private int v;} class B {inherit A; float v;})
-test_compile_any(class A {private int v;} class B {inherit A; mixed v;})
-test_compile_any(class A {private mixed v;} class B {inherit A; int v;})
+dnl test_compile_any(class A {private int v;} class B {inherit A; mixed v;})
+dnl test_compile_any(class A {private mixed v;} class B {inherit A; int v;})
 test_compile_error_low(class A {final int v;} class B {inherit A; int v;})
 test_compile_error_low(class A {final int v;} class B {inherit A; final int v;})
 test_compile_error_low(class A {nomask int v;} class B {inherit A; int v;})