diff --git a/lib/friendly_id/scoped.rb b/lib/friendly_id/scoped.rb
index aa1fdefdd..14ded01b0 100644
--- a/lib/friendly_id/scoped.rb
+++ b/lib/friendly_id/scoped.rb
@@ -123,13 +123,13 @@ def serialized_scope
 
     def scope_for_slug_generator
       relation = self.class.unscoped.friendly
+      primary_key_name = self.class.primary_key
+
       friendly_id_config.scope_columns.each do |column|
         relation = relation.where(column => send(column))
       end
-      if changed.include?(friendly_id_config.slug_column)
-        primary_key_name = self.class.primary_key
-        relation = relation.where.not(primary_key_name => send(primary_key_name))
-      end
+      relation = relation.where.not(primary_key_name => send(primary_key_name))
+
       relation
     end
     private :scope_for_slug_generator
diff --git a/lib/friendly_id/slugged.rb b/lib/friendly_id/slugged.rb
index 61d613b1d..0ba8e7cad 100644
--- a/lib/friendly_id/slugged.rb
+++ b/lib/friendly_id/slugged.rb
@@ -298,13 +298,12 @@ def set_slug(normalized_slug = nil)
     private :set_slug
 
     def scope_for_slug_generator
+      primary_key_name = self.class.primary_key
+
       scope = self.class.base_class.unscoped
       scope = scope.friendly unless scope.respond_to?(:exists_by_friendly_id?)
+      scope = scope.where.not(primary_key_name => send(primary_key_name))
 
-      if changed.include?(friendly_id_config.slug_column)
-        primary_key_name = self.class.primary_key
-        scope = scope.where.not(primary_key_name => send(primary_key_name))
-      end
       scope
     end
     private :scope_for_slug_generator
diff --git a/test/scoped_test.rb b/test/scoped_test.rb
index 57f867ba0..df250b1da 100644
--- a/test/scoped_test.rb
+++ b/test/scoped_test.rb
@@ -12,7 +12,7 @@ class Novel < ActiveRecord::Base
   friendly_id :name, :use => :scoped, :scope => [:publisher, :novelist]
 
   def should_generate_new_friendly_id?
-    new_record? || super
+    name_changed? || new_record? || super
   end
 end
 
@@ -112,4 +112,13 @@ def model_class
       assert_equal old_id, record.friendly_id
     end
   end
+
+  test 'should allow a record to reuse its own slug when other attr changed' do
+    with_instance_of(model_class) do |record|
+      old_id = record.friendly_id
+      record.name = "A-B-C"
+      record.save!
+      assert_equal old_id, record.friendly_id
+    end
+  end
 end
diff --git a/test/slugged_test.rb b/test/slugged_test.rb
index ad50ff17e..3300bb22d 100644
--- a/test/slugged_test.rb
+++ b/test/slugged_test.rb
@@ -3,6 +3,10 @@
 class Journalist < ActiveRecord::Base
   extend FriendlyId
   friendly_id :name, :use => :slugged
+
+  def should_generate_new_friendly_id?
+    name_changed? || super
+  end
 end
 
 class Article < ActiveRecord::Base
@@ -77,6 +81,15 @@ def self.name
       assert_equal old_id, record.friendly_id
     end
   end
+
+  test 'should allow record to reuse slug when other attr changed' do
+    with_instance_of(model_class) do |record|
+      old_id = record.friendly_id
+      record.name = "A-B-C"
+      record.save!
+      assert_equal old_id, record.friendly_id
+    end
+  end
 end
 
 class SlugGeneratorTest < MiniTest::Unit::TestCase