diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx
index ebe6dd654..0effaa45d 100644
--- a/src/Scripting/NasalSys.cxx
+++ b/src/Scripting/NasalSys.cxx
@@ -987,9 +987,10 @@ void NasalXMLVisitor::pi(const char* target, const char* data)
 
 void NasalXMLVisitor::call(naRef func, int num, naRef a, naRef b)
 {
-    _arg[0] = a;
-    _arg[1] = b;
-    naCall(_c, func, num, _arg, naNil(), naNil());
+    naRef args[2];
+    args[0] = a;
+    args[1] = b;
+    naCall(_c, func, num, args, naNil(), naNil());
     if(naGetError(_c))
         naRethrowError(_c);
 }
diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx
index a772ebcd2..a68317570 100644
--- a/src/Scripting/NasalSys.hxx
+++ b/src/Scripting/NasalSys.hxx
@@ -173,11 +173,10 @@ public:
     virtual void pi(const char* target, const char* data);
 
 private:
-    void call(naRef func, int num = 0, naRef a = naNil(), naRef b = naNil());
+    void call(naRef func, int num, naRef a = naNil(), naRef b = naNil());
     naRef make_string(const char* s, int n = -1);
 
     naContext _c;
-    naRef _arg[2];
     naRef _start_element, _end_element, _data, _pi;
 };