diff --git a/src/openocd.c b/src/openocd.c
index 50eb99e0b1a3c518437dc0a8206e9be98c219d90..f4aa451728a050cea16230440f2a919c00149676 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -360,10 +360,14 @@ int jim_command(command_context_t *context, char *line)
 	if (retcode == JIM_ERR) {
 		Jim_PrintErrorMessage(interp);
 	    long t;
-	    if (Jim_GetLong(interp, Jim_GetVariableStr(interp, "openocd_result", JIM_ERRMSG), &t)==JIM_OK)
+	    Jim_Obj *openocd_result=Jim_GetVariableStr(interp, "openocd_result", JIM_ERRMSG);
+	    if (openocd_result)
 	    {
-	    	return t;
-	    }
+		    if (Jim_GetLong(interp, openocd_result, &t)==JIM_OK)
+		    {
+		    	return t;
+		    }
+		}
 	    return ERROR_FAIL;
 	} 
 	const char *result;