diff --git a/src/sbbs3/execmisc.cpp b/src/sbbs3/execmisc.cpp
index 2d6f05fd37b75b0aebd642fbf0d248e9b4f0f6e8..1e22a908e29bae4808c0849aa290a750f65bf477 100644
--- a/src/sbbs3/execmisc.cpp
+++ b/src/sbbs3/execmisc.cpp
@@ -653,9 +653,6 @@ int sbbs_t::exec_misc(csi_t* csi, char *path)
 					lp1=getintvar(csi,*(long *)csi->ip);
 					csi->ip+=4;
 					lp2=getintvar(csi,*(long *)csi->ip);
-					csi->ip+=4;
-					if(!lp1)
-						return(0);
 					if(!lp2) {
 						pp=getstrvar(csi,*(long *)csi->ip);
 						if(!pp || !*pp)
@@ -663,6 +660,9 @@ int sbbs_t::exec_misc(csi_t* csi, char *path)
 						l=strtol(*pp,0,0); }
 					else
 						l=*lp2;
+					csi->ip+=4;
+					if(!lp1)
+						return(0);
 					switch(i) {
 						case ADD_INT_VARS:
 							*lp1+=l;