summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 33f1af51..ec7af348 100644
--- a/eval.c
+++ b/eval.c
@@ -239,7 +239,9 @@ val lookup_origin(val form)
static val set_origin(val form, val origin)
{
- if (origin && form != origin)
+ if (origin && form != origin && is_ptr(form) &&
+ (!symbolp(form) || !symbol_package(form)) &&
+ is_ptr(origin) && (!symbolp(origin) || !symbol_package(origin)))
sethash(origin_hash, form, origin);
return form;
}