diff --git a/app/models/user.rb b/app/models/user.rb
index 8aa61600b4b..a329f88dc05 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -17,11 +17,12 @@ class User < ActiveRecord::Base
   has_many :posts
   has_many :notifications, dependent: :destroy
   has_many :topic_users, dependent: :destroy
+  has_many :category_users, dependent: :destroy
   has_many :topics
   has_many :user_open_ids, dependent: :destroy
   has_many :user_actions, dependent: :destroy
   has_many :post_actions, dependent: :destroy
-  has_many :user_badges, -> {where('user_badges.badge_id IN (SELECT id FROM badges where enabled)')}, dependent: :destroy
+  has_many :user_badges, -> { where('user_badges.badge_id IN (SELECT id FROM badges WHERE enabled)') }, dependent: :destroy
   has_many :badges, through: :user_badges
   has_many :email_logs, dependent: :delete_all
   has_many :post_timings
diff --git a/spec/models/category_user_spec.rb b/spec/models/category_user_spec.rb
index 34927139996..2365f611b5c 100644
--- a/spec/models/category_user_spec.rb
+++ b/spec/models/category_user_spec.rb
@@ -80,6 +80,19 @@ describe CategoryUser do
       expect(TopicUser.get(post.topic, user)).to be_blank
     end
 
+    it "is destroyed when a user is deleted" do
+      user = Fabricate(:user)
+      category = Fabricate(:category)
+
+      CategoryUser.create!(user: user, category: category, notification_level: CategoryUser.notification_levels[:watching])
+
+      expect(CategoryUser.where(user_id: user.id).count).to eq(1)
+
+      user.destroy!
+
+      expect(CategoryUser.where(user_id: user.id).count).to eq(0)
+    end
+
   end
 end