diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index fc744c270d9013f42eec057bbaa999a5454024dc..1b3cfd61c4c77a023bc2818e9b16487416879e41 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -10,10 +10,6 @@ module ApplicationHelper
     content_tag(:abbr, time.to_s, options.merge(:title => time.iso8601)) if time
   end
 
-  def modern_browser?
-    false
-  end
-
   def page_title text=nil
     title = ""
     if text.blank?
@@ -68,7 +64,7 @@ module ApplicationHelper
         param_string << "#{k}=#{v}"
       end
     end
-    "<li>
+"<li>
   <a href='/aspects/#{aspect.id}#{param_string}'>
     #{aspect.name}
   </a>
@@ -210,25 +206,29 @@ module ApplicationHelper
 
   def process_youtube(message, youtube_maps)
     regex = /( |^)(http:\/\/)?www\.youtube\.com\/watch[^ ]*v=([A-Za-z0-9_\-]+)(&[^ ]*|)/
-    while youtube = message.match(regex)
-      video_id = youtube[3]
+    processed_message = message.gsub(regex) do |matched_string|
+      match_data = matched_string.match(regex)
+      video_id = match_data[3]
       if youtube_maps && youtube_maps[video_id]
         title = h(CGI::unescape(youtube_maps[video_id]))
       else
         title = I18n.t 'application.helper.video_title.unknown'
       end
-      message.gsub!(youtube[0], '<a class="video-link" data-host="youtube.com" data-video-id="' + video_id + '" href="#video">Youtube: ' + title + '</a>')
+      '<a class="video-link" data-host="youtube.com" data-video-id="' + video_id + '" href="'+ match_data[0].strip + '">Youtube: ' + title + '</a>'
     end
-    return message
+    return processed_message
   end
 
   def process_autolinks(message)
     message.gsub!(/( |^)(www\.[^\s]+\.[^\s])/, '\1http://\2')
     message.gsub!(/(<a target="\\?_blank" href=")?(https|http|ftp):\/\/([^\s]+)/) do |m|
-      if !$1.nil?
+      captures = [$1,$2,$3]
+      if !captures[0].nil?
         m
+      elsif m.match(/(youtube|vimeo)/)
+        m.gsub(/(\*|_)/) { |m| "\\#{$1}" } #remove markers on markdown chars to not markdown inside links
       else
-        res = %{<a target="_blank" href="#{$2}://#{$3}">#{$3}</a>}
+        res = %{<a target="_blank" href="#{captures[1]}://#{captures[2]}">#{captures[2]}</a>}
         res.gsub!(/(\*|_)/) { |m| "\\#{$1}" }
         res
       end
@@ -253,23 +253,23 @@ module ApplicationHelper
 
   def process_vimeo(message, vimeo_maps)
     regex = /https?:\/\/(?:w{3}\.)?vimeo.com\/(\d{6,})/
-    while vimeo = message.match(regex)
-      video_id = vimeo[1]
+    processed_message = message.gsub(regex) do |matched_string|
+      match_data = message.match(regex)
+      video_id = match_data[1]
       if vimeo_maps && vimeo_maps[video_id]
         title = h(CGI::unescape(vimeo_maps[video_id]))
       else
         title = I18n.t 'application.helper.video_title.unknown'
       end
-      message.gsub!(vimeo[0], '<a class="video-link" data-host="vimeo.com" data-video-id="' + video_id + '" href="#video">Vimeo: ' + title + '</a>')
+      '<a class="video-link" data-host="vimeo.com" data-video-id="' + video_id + '" href="' + match_data[0] + '">Vimeo: ' + title + '</a>'
     end
-    return message
+    return processed_message
   end
 
   def info_text(text)
     image_tag 'icons/monotone_question.png', :class => 'what_is_this', :title => text
   end
 
-
   def get_javascript_strings_for(language)
     defaults = I18n.t('javascripts', :locale => DEFAULT_LANGUAGE)
 
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 4c90b27e7020dd86ffb3fb298a7f5c1f40c0ff58..9b339d2bc99e011f0090b6e2cea30bcf430790d0 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -106,6 +106,22 @@ describe ApplicationHelper do
           res.should =~ /data-host="youtube.com"/
           res.should =~ /data-video-id="#{video_id}"/
         end
+
+        it "leaves the links in the href of the #a tag" do
+          video_id = "ABYnqp-bxvg"
+          start_url ="http://www.youtube.com/watch?v=" + video_id
+          url = start_url + "&a=GxdCwVVULXdvEBKmx_f5ywvZ0zZHHHDU&list=ML&playnext=1"
+          res = markdownify(url)
+          res.should =~ /href=[\S]+v=#{video_id}/
+        end
+        it 'does not autolink inside the link' do
+          video_id = "ABYnqp-bxvg"
+          start_url ="http://www.youtube.com/watch?v=" + video_id
+          url = start_url + "&a=GxdCwVVULXdvEBKmx_f5ywvZ0zZHHHDU&list=ML&playnext=1"
+          res = markdownify(url)
+          pp res
+          res.match(/href="<a/).should be_nil
+        end
       end
 
       it "recognizes multiple links of different types" do