       @connect() unless @client.isAuthorized()
 
   _onAnnotationUpdated: (annotation) =>
+    data = @_commentFromAnnotation annotation
     if annotation.commentUrl
-      data = @_commentFromAnnotation annotation
       request = @client.updateComment annotation.commentUrl, data
-      request.error (xhr) => @error "Unable to update annotation in Readmill"
+    else if annotation.commentsUrl
+      request = @client.createComment annotation.commentsUrl, data
+      request.done (data) =>
+        annotation.commentUrl = data.location
+
+    request.fail((xhr) => @error "Unable to update annotation in Readmill") if request
 
   _onAnnotationDeleted: (annotation) =>
     if annotation.highlightUrl

        ranges: ranges
        highlightUrl: highlight.uri
        commentUrl: ""

      @client.request(url: highlight.comments).error(deferred.reject).done (comments) ->
        if comments.length

  deleteHighlight: (url) ->
    @request type: "DELETE", url: url

  createComment: (url, comment) -> 
    @request type: "POST", url: url, data: {comment}

  updateComment: (url, comment) -> 
    @request type: "PUT", url: url, data: {comment}

  request: (options={}) ->
