summaryrefslogtreecommitdiff
path: root/libguile/dynwind.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/dynwind.c')
-rw-r--r--libguile/dynwind.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c
index 304ba7711..3108f17c6 100644
--- a/libguile/dynwind.c
+++ b/libguile/dynwind.c
@@ -186,7 +186,8 @@ scm_swap_bindings (SCM glocs, SCM vals)
while (SCM_NIMP (vals))
{
tmp = SCM_GLOC_VAL (SCM_CAR (glocs));
- SCM_SETCDR (SCM_CAR (glocs) - 1L, SCM_CAR (vals));
+ SCM_SETCDR (SCM_PACK (SCM_UNPACK (SCM_CAR (glocs)) - 1L),
+ SCM_CAR (vals));
SCM_SETCAR (vals, tmp);
glocs = SCM_CDR (glocs);
vals = SCM_CDR (vals);