diff --git a/app/models/topic_link_click.rb b/app/models/topic_link_click.rb
index 5604505258f..174122b6ccb 100644
--- a/app/models/topic_link_click.rb
+++ b/app/models/topic_link_click.rb
@@ -5,10 +5,8 @@ class TopicLinkClick < ActiveRecord::Base
   belongs_to :topic_link, counter_cache: :clicks
   belongs_to :user
 
-  has_ip_address :ip
-
   validates_presence_of :topic_link_id
-  validates_presence_of :ip
+  validates_presence_of :ip_address
 
   # Create a click from a URL and post_id
   def self.create_from(args={})
@@ -28,7 +26,7 @@ class TopicLinkClick < ActiveRecord::Base
     rate_key = "link-clicks:#{link.id}:#{args[:user_id] || args[:ip]}"
     if $redis.setnx(rate_key, "1")
       $redis.expire(rate_key, 1.day.to_i)
-      create!(topic_link_id: link.id, user_id: args[:user_id], ip: args[:ip])
+      create!(topic_link_id: link.id, user_id: args[:user_id], ip_address: args[:ip])
     end
 
     args[:url]
@@ -43,9 +41,9 @@ end
 #  id            :integer          not null, primary key
 #  topic_link_id :integer          not null
 #  user_id       :integer
-#  ip            :integer          not null
 #  created_at    :datetime         not null
 #  updated_at    :datetime         not null
+#  ip_address    :string           not null
 #
 # Indexes
 #
diff --git a/db/migrate/20130624203206_change_ip_to_inet_in_topic_link_clicks.rb b/db/migrate/20130624203206_change_ip_to_inet_in_topic_link_clicks.rb
new file mode 100644
index 00000000000..a0c3924bfdb
--- /dev/null
+++ b/db/migrate/20130624203206_change_ip_to_inet_in_topic_link_clicks.rb
@@ -0,0 +1,21 @@
+require 'ipaddr'
+
+class ChangeIpToInetInTopicLinkClicks < ActiveRecord::Migration
+  def up
+    add_column :topic_link_clicks, :ip_address, :inet
+
+    execute "UPDATE topic_link_clicks SET ip_address = inet(
+      (ip >> 24 & 255) || '.' ||
+      (ip >> 16 & 255) || '.' ||
+      (ip >>  8 & 255) || '.' ||
+      (ip >>  0 & 255)
+    );"
+
+    change_column :topic_link_clicks, :ip_address, :inet, { :null => false }
+    remove_column :topic_link_clicks, :ip
+  end
+
+  def down
+    raise ActiveRecord::IrreversibleMigration
+  end
+end
diff --git a/spec/models/topic_link_click_spec.rb b/spec/models/topic_link_click_spec.rb
index fce47cb5978..1580de1ac57 100644
--- a/spec/models/topic_link_click_spec.rb
+++ b/spec/models/topic_link_click_spec.rb
@@ -26,7 +26,7 @@ describe TopicLinkClick do
 
     context 'create' do
       before do
-        TopicLinkClick.create(topic_link: @topic_link, ip: '192.168.1.1')
+        TopicLinkClick.create(topic_link: @topic_link, ip_address: '192.168.1.1')
       end
 
       it 'creates the forum topic link click' do
@@ -39,7 +39,7 @@ describe TopicLinkClick do
       end
 
       it 'serializes and deserializes the IP' do
-        TopicLinkClick.first.ip.to_s.should == '192.168.1.1'
+        TopicLinkClick.first.ip_address.to_s.should == '192.168.1.1'
       end
 
     end
diff --git a/spec/models/topic_link_spec.rb b/spec/models/topic_link_spec.rb
index 820d45b5977..29d7422a29a 100644
--- a/spec/models/topic_link_spec.rb
+++ b/spec/models/topic_link_spec.rb
@@ -236,7 +236,7 @@ describe TopicLink do
       it 'has the correct results' do
         TopicLink.extract_from(post)
         topic_link = post.topic.topic_links.first
-        TopicLinkClick.create(topic_link: topic_link, ip: '192.168.1.1')
+        TopicLinkClick.create(topic_link: topic_link, ip_address: '192.168.1.1')
 
         counts_for[post.id].should be_present
         counts_for[post.id].find {|l| l[:url] == 'http://google.com'}[:clicks].should == 0