diff --git a/lib/fast_haml/compiler.rb b/lib/fast_haml/compiler.rb
index <HASH>..<HASH> 100644
--- a/lib/fast_haml/compiler.rb
+++ b/lib/fast_haml/compiler.rb
@@ -303,7 +303,7 @@ module FastHaml
       when value == true
         [[:haml, :attr, key, [:multi]]]
       when value == false
-        []
+        [[:multi]]
       when value.is_a?(Hash) && key == 'data'
         data = AttributeBuilder.normalize_data(value)
         data.keys.sort.map do |k|
@@ -315,7 +315,7 @@ module FastHaml
     end
 
     def compile_dynamic_attribute(key, value)
-      [[:haml, :attr, key, [:code, value]]]
+      [[:haml, :attr, key, [:dvalue, value]]]
     end
 
     def compile_script(ast)
diff --git a/lib/fast_haml/html.rb b/lib/fast_haml/html.rb
index <HASH>..<HASH> 100644
--- a/lib/fast_haml/html.rb
+++ b/lib/fast_haml/html.rb
@@ -23,7 +23,7 @@ module FastHaml
         else
           [:static, " #{name}=#{options[:attr_quote]}#{name}#{options[:attr_quote]}"]
         end
-      elsif value[0] == :code
+      elsif value[0] == :dvalue
         [:multi,
           [:code, "value = (#{value[1]})"],
           [:case, 'value',
Rename symbol because :code is used as another semantics