             delete @dropzone
 
     componentDidUpdate: ->
-        @queueDestroy = false
-        if not @dropzone?
+        if not @props.disabled
+            @queueDestroy = false
             @_create_dropzone()
 
     # Update Dropzone options each time the component updates.
-    componentWillUpdate: ->
-        @dropzone.options = $.extend(true, {}, @dropzone.options, @get_djs_config())
+    componentWillUpdate: (new_props) ->
+        if new_props.disabled
+            @dropzone = @_destroy(@dropzone)
+        else
+            @_create_dropzone()
+            @dropzone.options = $.extend(true, {}, @dropzone.options, @get_djs_config())
 
     preview_template: ->
         <div className='dz-preview dz-file-preview'>


    render: ->
        <div>
            {@render_preview()}
            {@props.children}
        </div>

    _create_dropzone: ->
        dropzone_node = ReactDOM.findDOMNode(@)
        @dropzone = new Dropzone(dropzone_node, @get_djs_config())

    _set_up_events: ->
        return unless @dropzone?

    # Removes ALL listeners and Destroys dropzone.
    # see https://github.com/enyo/dropzone/issues/1175
    _destroy: (dropzone) ->
        return if not dropzone?
        dropzone.off()
        dropzone.destroy()
