diff --git a/app/models/concerns/trackable.rb b/app/models/concerns/trackable.rb
index b4ae126640ea81adf13952901f62ec34813d8d41..debab1e936ba955ebf07231c6128ab9d8ae58465 100644
--- a/app/models/concerns/trackable.rb
+++ b/app/models/concerns/trackable.rb
@@ -29,9 +29,9 @@ module Trackable
   end
 
   def new_update_activity
-    return nil if changed.blank?
+    return nil if previous_changes.blank?
     return new_activity(:update) if ignore_changes == %w(updated_at)
-    filtered = changed.reject { |x| ignore_changes.include?(x) }
+    filtered = previous_changes.reject { |x| ignore_changes.include?(x) }
     new_activity(:update) unless filtered.empty?
   end
 
diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb
index 79770e3e943c97f3d0494dfd2e4a0b954a26dfc2..10451b6f8921f176769180890aa8b6f38b8be3ac 100644
--- a/app/models/learning_object.rb
+++ b/app/models/learning_object.rb
@@ -79,7 +79,7 @@ class LearningObject < ApplicationRecord
   belongs_to :license, optional: true
   belongs_to :object_type, optional: true
   belongs_to :attachment, class_name: 'LearningObject::Attachment', optional: true
-  has_one :submission, dependent: :destroy
+  has_one :submission
 
   validates :name, :publisher, :object_type, :author, presence: true, unless: :draft?
   validates :language, unless: :draft?, :length => { :minimum => 1 }
diff --git a/app/models/submission.rb b/app/models/submission.rb
index 08e9a16a033fbb11a42497e69add74f6586b3e2e..98bdd8a575ae9e89ea0308d6f3a7ecc0377736f2 100644
--- a/app/models/submission.rb
+++ b/app/models/submission.rb
@@ -49,7 +49,7 @@ class Submission < ApplicationRecord
   after_update :update_status
 
   def update_status
-    if curator_id_changed?
+    if curator_id_previously_changed?
       curator_assignments.each do |ca|
         if ca.user == curator
           ca.answered!