diff --git a/lib/aasm/persistence/active_record_persistence.rb b/lib/aasm/persistence/active_record_persistence.rb
index 09ae4fd..87b7496 100644
--- a/lib/aasm/persistence/active_record_persistence.rb
+++ b/lib/aasm/persistence/active_record_persistence.rb
@@ -132,9 +132,16 @@ module AASM
         end
 
         def aasm_fire_event(name, options, *args)
-          self.class.transaction(:requires_new => true) do
+          success = self.class.transaction(:requires_new => true) do
             super
           end
+
+          if success
+            new_state = aasm.state_object_for_name(aasm.current_state)
+            new_state.fire_callbacks(:after_commit, self)
+          end
+
+          success
         end
       end # InstanceMethods