diff --git a/core/OOP.hh b/core/OOP.hh
index 5c215765273e07f5c139a623c072d242359585a7..376cd2b792d9e7c6db14a98489925629b706e581 100644
--- a/core/OOP.hh
+++ b/core/OOP.hh
@@ -91,6 +91,9 @@ public:
         TTCN_error("Invalid dynamic type of initial value.");
       }
     }
+    else {
+      ptr = NULL;
+    }
   }
   
   void clean_up() {
diff --git a/regression_test/oop/oop.ttcn b/regression_test/oop/oop.ttcn
index 6c2a16741069bba3d0ab58c8e38277a4e9506a74..59d02d1d2b156db747e275dd2428d14b9c9317be 100644
--- a/regression_test/oop/oop.ttcn
+++ b/regression_test/oop/oop.ttcn
@@ -385,6 +385,10 @@ testcase tc_references() runs on CT {
   if (ispresent(v_null)) {
     setverdict(fail, "#17");
   }
+  var BaseClass v_base2 := v_null;
+  if (v_base2 != null) {
+    setverdict(fail, "#18");
+  }
   setverdict(pass);
 }