# Mstatus > [HTML Version](mstatus.htm) _mstatus _(Signed [Num](num.htm.md), out, optional) returns a code indicating the result of the operation: | **Value** | **Meaning** | |------|------| | 0 | OK, or for opcode 2 indicates item was previously enabled | | 1 | OK, or for opcode 2 indicates item was previously disabled | | \-1 | Add or delete menu function failed | | \-2 | Menu (_mnutxt_) not found during change or delete operation | | \-3 | Out of memory (unable to allocate menu storage buffers) | | \-4 | Exceeded maximum number of added menu items (currently 125) | | \-5 | No menu buffer allocated | | \-6 | Illegal opcode | | \-7 | Menu (_mnutxt_) already exists | | \-8 | [Menuid](menuid.htm.md) not found | | \-15 | ATE failed to respond to the server request within the normal time limit | If the _mstatus_ parameter is omitted, or passed as a null string (if mapped, must be S,1), then no status will be returned. This will provide a speed improvement when setting up a lot of menu items (particularly over ATE), and is recommended especially if you aren't even bothering to check the returned status value anyway. The normal time limit for a response from ATE is five seconds for most commands, ten to fifteen seconds for a few. Sometimes commands that "should" respond almost instantly will take a long time, either because ATE is "locked up", or there is some other Windows hang-up, such as waiting on "elevation" or some other critical event. In such cases, we return -15 to indicate time out.