   # Returns a form that can be used as fallback if the browser does not support DragnDrop
   #
   # If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.
+  # This code has to pass in IE7 :(
   getFallbackForm: ->
-    # This code has to pass in IE6 :(
-    fields = createElement """<div class="fallback-elements"><input type="file" name="#{@options.paramName}" multiple="multiple" /><button type="submit">Upload!</button></div>"""
+    return existingFallback if existingFallback = @getExistingFallback()
+
+    fields = createElement """<div class="fallback"><input type="file" name="#{@options.paramName}" multiple="multiple" /><button type="submit">Upload!</button></div>"""
     if @element.tagName isnt "FORM"
       form = createElement("""<form action="#{@options.url}" enctype="multipart/form-data" method="post"></form>""")
       form.appendChild fields

      @element.setAttribute "enctype", "multipart/form-data"
      @element.setAttribute "method", "post"
    form ? fields

  # Activates all listeners stored in @listeners
  setupEventListeners: ->

    # If the browser failed, just call the fallback and leave
    return @options.fallback.call this unless Dropzone.isBrowserSupported()

    fallback.remove() if fallback = @getExistingFallback()

    @previewsContainer = if @options.previewsContainer then createElement(@options.previewsContainer) else @element

