           return callback err  if err
           user = user_
           queue.next()
+      ->
+        if ip? and country? and region?
+          locationModifier = $set    :
+            "registeredFrom.ip"      : ip
+            "registeredFrom.country" : country
+            "registeredFrom.region"  : region
+          user.update locationModifier, ->
+            queue.next()
+        else process.nextTick -> queue.next()
       =>
         @persistOauthInfo oldUsername, client.sessionToken, (err)=>
           return callback err  if err

          ]
        ]
        default     : 'unconfirmed'
      passwordStatus :
        type         : String
        enum         : [
          'invalid password status type', [
            'needs reset', 'needs set', 'valid', 'autogenerated'
          ]
        ]
        default      : 'valid'
      registeredAt  :
        type        : Date
        default     : -> new Date
      lastLoginDate :
        type        : Date
        default     : -> new Date


    if password isnt passwordConfirm
      return callback createKodingError "Passwords must match!"

    if locationData?
      try { ip, country, region } = JSON.parse locationData

    newToken       = null
    invite         = null
