diff --git a/lib/freedom_patches/active_record_base.rb b/lib/freedom_patches/active_record_base.rb
index f114315f8..d4f8f2467 100644
--- a/lib/freedom_patches/active_record_base.rb
+++ b/lib/freedom_patches/active_record_base.rb
@@ -11,10 +11,18 @@ class ActiveRecord::Base
     exec_sql(*args).cmd_tuples
   end
 
-  # note: update_attributes still spins up a transaction this can cause contention
-  # this method performs the raw update sidestepping the locking
-  def update_columns(hash)
-    self.class.where(self.class.primary_key => self.id).update_all(hash)
+  # exists fine in rails4
+  unless rails4?
+    # note: update_attributes still spins up a transaction this can cause contention
+    # this method performs the raw update sidestepping the locking
+    # exists in rails 4
+    def update_columns(hash)
+      self.class.where(self.class.primary_key => self.id).update_all(hash)
+
+      hash.each do |k,v|
+        raw_write_attribute k, v
+      end
+    end
   end
 
   def exec_sql(*args)