diff --git a/src/interpret.c b/src/interpret.c
index f3a83ce04cd4ddcf003f0a458b6d2587f63424f3..b8c13ee2b0a53414f9d402b3072bc87bf23c9b26 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -196,8 +196,8 @@ void pop_n_elems(INT32 x)
 
   if(x < 0) fatal("Popping negative number of args....\n");
 #endif
-  free_svalues(sp-x,x,BIT_MIXED);
   sp-=x;
+  free_svalues(sp,x,BIT_MIXED);
 }
 
 #ifdef DEBUG