       match = regexp.match(/<get (.+?)>/i)
       if match
         name = match[1]
-        rep  = 'undefined'
-        if typeof(@master._users[user][name]) isnt "undefined"
-          rep = @master._users[user][name]
+        rep = @master.getUservar(user, name)
         regexp = regexp.replace(new RegExp("<get " + utils.quotemeta(name) + ">", "ig"), rep.toLowerCase())
 
     # Filter in input/reply tags.

          break
        name = match[1]
        value = match[2]
        @master._users[user][name] = value
        reply = reply.replace(new RegExp("<set " + utils.quotemeta(name) + "=" + utils.quotemeta(value) + ">", "ig"), "")
        match = reply.match(/<set (.+?)=(.+?)>/i)
    else

        value = parts[1]

        # Initialize the variable?
        if @master.getUservar(user, name) is "undefined"
          @master.setUservar(user, name, 0)

        # Sanity check
        value = parseInt(value)
        if isNaN(value)
          insert = "[ERR: Math can't '#{tag}' non-numeric value '#{value}']"
        else if isNaN(parseInt(@master.getUservar(user, name)))
          insert = "[ERR: Math can't '#{tag}' non-numeric user variable '#{name}']"
        else
          result = parseInt(@master.getUservar(user, name))
          if tag is "add"
            result += value
          else if tag is "sub"
