diff --git a/vm.go b/vm.go
index 4e29cb4..af8783f 100644
--- a/vm.go
+++ b/vm.go
@@ -604,7 +604,9 @@ func (v *VM) run() {
 				v.framesIndex++
 				v.sp = v.sp - numArgs + callee.NumLocals
 			} else {
-				ret, e := value.Call(v.stack[v.sp-numArgs : v.sp]...)
+				var args []Object
+				args = append(args, v.stack[v.sp-numArgs:v.sp]...)
+				ret, e := value.Call(args...)
 				v.sp -= numArgs + 1
 
 				// runtime error