         if child?
           if _.isString(child) or _.isNumber(child)
             document.createTextNode(child)
-          else if child instanceof Element
+          else if child instanceof Element or child instanceof SVGElement
             child
           else if child instanceof RawHtml
             parsed = $(child.html)

          setDynProp(elt, name, value)
        if contents?
          if contents instanceof ObsArray
            rx.autoSub contents.onChange, ([index, removed, added]) ->
              elt.contents().slice(index, index + removed.length).remove()
              toAdd = toNodes(added)
              if index == elt.contents().length
                elt.append(toAdd)
              else
                elt.contents().eq(index).before(toAdd)
          else if contents instanceof ObsCell
            # TODO: make this more efficient by checking each element to see if it
            # changed (i.e. layer a MappedDepArray over this, and make DepArrays

      'th', 'form', 'fieldset', 'legend', 'fieldset', 'label', 'input', 'button',
      'select', 'datalist', 'optgroup', 'option', 'select', 'datalist', 'textarea',
      'keygen', 'output', 'progress', 'meter', 'details', 'summary', 'details',
      'menuitem', 'menu',
      "a", "altglyph", "altglyphdef", "altglyphitem", "animate", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "color-profile", "cursor", "defs", "desc", "ellipse", "feblend", "fecolormatrix", "fecomponenttransfer", "fecomposite", "feconvolvematrix", "fediffuselighting", "fedisplacementmap", "fedistantlight", "feflood", "fefunca", "fefuncb", "fefuncg", "fefuncr", "fegaussianblur", "feimage", "femerge", "femergenode", "femorphology", "feoffset", "fepointlight", "fespecularlighting", "fespotlight", "fetile", "feturbulence", "filter", "font", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "missing-glyph", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "script", "set", "stop", "style", "svg", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "use", "view", "vkern"]
    # From <https://developer.mozilla.org/en-US/docs/Web/SVG/Element>

    rxt.tags = _.object([tag, rxt.mktag(tag)] for tag in tags)
    rxt.rawHtml = (html) -> new RawHtml(html)
    rxt.importTags = (x) => _(x ? this).extend(rxt.tags)
    
    #
    # rxt utilities
