Index: src/dom.js
===================================================================
--- src/dom.js	(revision 7353)
+++ src/dom.js	(working copy)
@@ -291,11 +291,14 @@
     for (var attr in attributes) {
       var name = t.names[attr] || attr, value = attributes[attr];
       if (t.values[attr]) name = t.values[attr](element, value);
-      if (value === false || value === null)
+      if (value === false || value === null) {
         element.removeAttribute(name);
-      else if (value === true)
+    		if (element[name]) {element[name] = false;}
+      } else if (value === true || name == value) {
         element.setAttribute(name, name);
-      else element.setAttribute(name, value);
+        if (element[name] !== undefined && !element[name])
+          element[name] = true;
+      } else element.setAttribute(name, value);
     }
     return element;
   },
