diff --git a/app/models/topic_embed.rb b/app/models/topic_embed.rb
index 12ff86a646f..b71726d4134 100644
--- a/app/models/topic_embed.rb
+++ b/app/models/topic_embed.rb
@@ -186,7 +186,11 @@ class TopicEmbed < ActiveRecord::Base
   # Convert any relative URLs to absolute. RSS is annoying for this.
   def self.absolutize_urls(url, contents)
     url = normalize_url(url)
-    uri = URI(UrlHelper.escape_uri(url))
+    begin
+      uri = URI(UrlHelper.escape_uri(url))
+    rescue URI::Error
+      return contents
+    end
     prefix = "#{uri.scheme}://#{uri.host}"
     prefix << ":#{uri.port}" if uri.port != 80 && uri.port != 443
 
diff --git a/spec/models/topic_embed_spec.rb b/spec/models/topic_embed_spec.rb
index 1ff69046c0e..4e931f4f99c 100644
--- a/spec/models/topic_embed_spec.rb
+++ b/spec/models/topic_embed_spec.rb
@@ -310,4 +310,14 @@ describe TopicEmbed do
     end
   end
 
+  describe '.absolutize_urls' do
+    let(:invalid_url) { 'http://source.com/#double#anchor' }
+    let(:contents) { "hello world new post <a href='/hello'>hello</a>" }
+
+    it "does not attempt absolutizing on a bad URI" do
+      raw = TopicEmbed.absolutize_urls(invalid_url, contents)
+      expect(raw).to eq(contents)
+    end
+  end
+
 end