           @status = Carrot.Status.ReadOnly
         when 404
           # No change to status, resource not found
+          @status = @status
         when 405
           @status = Carrot.Status.NotAuthorized
         else
           @status = Carrot.Status.Unknown
-      callback(ret) if callback
+      if callback
+        return callback(ret)
+      else
+        return ret
 
   postAchievement: (achievementId, callback) ->
     @postSignedRequest("/me/achievements.json",

        data: data
        url: url
        complete: (jqXHR, textStatus) =>
          callback(jqXHR.status) if callback
    true

  validateUser: (callback) ->
    @ajaxGet("#{@scheme}://#{@hostname}/games/#{@appId}/users.json?id=#{encodeURIComponent(@udid)}",
      (statusCode) =>
        switch statusCode
          when 200
            @status = Carrot.Status.Authorized
          when 401

        async: true
        url: url
        complete: (jqXHR, textStatus) =>
          callback(jqXHR) if callback
    true

  ajaxPost: (url, data, callback) ->
