diff --git a/main/gbc/gbc_trans_expr.c b/main/gbc/gbc_trans_expr.c
index df24783fa..c81546caa 100644
--- a/main/gbc/gbc_trans_expr.c
+++ b/main/gbc/gbc_trans_expr.c
@@ -235,6 +235,9 @@ static void trans_identifier(int index, bool point, PATTERN next)
 			is_static = TYPE_is_static(sym->global.type);
 			is_func = type == TK_FUNCTION;
 
+			if (is_func && PATTERN_is_point(next))
+				goto __CLASS;
+
 			if (!is_static && TYPE_is_static(JOB->func->type))
 				THROW("Dynamic symbols cannot be used in static function");