diff --git a/compiler2/ttcn3/AST_ttcn3.cc b/compiler2/ttcn3/AST_ttcn3.cc
index aa1209148d56089875a7dc990e7a511c86f9105e..9f313c473e81b49d7a83e32def6c035e466c65c5 100644
--- a/compiler2/ttcn3/AST_ttcn3.cc
+++ b/compiler2/ttcn3/AST_ttcn3.cc
@@ -735,8 +735,9 @@ namespace Ttcn {
     Free(expr_cache);
   }
   
-  bool Reference::has_parameters() const
+  bool Reference::has_parameters()
   {
+    get_refd_assignment(); // make sure the reference is checked
     return params_checked ? parlist != NULL : params != NULL;
   }
 
diff --git a/compiler2/ttcn3/AST_ttcn3.hh b/compiler2/ttcn3/AST_ttcn3.hh
index 2d7039ac1dd358e8abb3fa70180455deabd9a681..c672555a1e225af3685abc6fd946e5a6dd77bc9c 100644
--- a/compiler2/ttcn3/AST_ttcn3.hh
+++ b/compiler2/ttcn3/AST_ttcn3.hh
@@ -364,7 +364,7 @@ namespace Ttcn {
     Reference(Identifier *p_modid, Identifier *p_id,
               ParsedActualParameters *p_params, reftype_t p_reftype = REF_BASIC);
     ~Reference();
-    virtual bool has_parameters() const;
+    virtual bool has_parameters();
     virtual Reference *clone() const;
     virtual void set_fullname(const string& p_fullname);
     virtual void set_my_scope(Scope* p_scope);