diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb
index b336233d1fa356d36ee42f3cf2ff9796b4100ef6..bd716d370c506cc860a39d403b813ca3eea31507 100644
--- a/app/helpers/watchers_helper.rb
+++ b/app/helpers/watchers_helper.rb
@@ -17,6 +17,19 @@
 
 module WatchersHelper
 
+  # Deprecated method. Use watcher_link instead
+  #
+  # This method will be removed in ChiliProject 3.0 or later
+  def watcher_tag(object, user, options={:replace => 'watcher'})
+    ActiveSupport::Deprecation.warn "The WatchersHelper#watcher_tag is deprecated and will be removed in ChiliProject 3.0. Please use WatchersHelper#watcher_link instead. Please also note the differences between the APIs.", caller
+
+    options[:id] ||= options[:replace] if options[:replace].is_a? String
+
+    options[:replace] = Array(options[:replace]).map { |id| "##{id}" }
+
+    watcher_link(object, user, options)
+  end
+
   # Create a link to watch/unwatch object
   #
   # * :replace - a string or array of strings with css selectors that will be updated, whenever the watcher status is changed
diff --git a/test/unit/helpers/watchers_helpers_test.rb b/test/unit/helpers/watchers_helpers_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2ba21cbfb95fee02789e096fb15438f1b0e39834
--- /dev/null
+++ b/test/unit/helpers/watchers_helpers_test.rb
@@ -0,0 +1,49 @@
+require File.expand_path('../../../test_helper', __FILE__)
+
+class WatchersHelperTest < HelperTestCase
+  include WatchersHelper
+
+  # tested for backwards compatibility
+  context '#watcher_tag' do
+    setup do
+      # mocking watcher_link to make sure, that new API is properly called from
+      # the old one.
+      def self.watcher_link(*args)
+        @watcher_link_args = args
+        nil
+      end
+
+      # silencing deprecation warnings while testing the deprecated behavior
+      def self.watcher_tag(*args)
+        ActiveSupport::Deprecation.silence { super }
+      end
+    end
+
+    context 'without options' do
+      should "call watcher_link with object, user and {:id => 'watcher', :replace => '#watcher'}" do
+        watcher_tag(:object, :user)
+        assert_equal :object, @watcher_link_args.first
+        assert_equal :user, @watcher_link_args.second
+        assert_equal({:id => 'watcher', :replace => ['#watcher']}, @watcher_link_args.third)
+      end
+    end
+
+    context 'with replace, without id option' do
+      should "set id to replace value and prefix replace with a # to make it a valid css selectors" do
+        watcher_tag(:object, :user, :replace => 'abc')
+        assert_equal :object, @watcher_link_args.first
+        assert_equal :user, @watcher_link_args.second
+        assert_equal({:id => 'abc', :replace => ['#abc']}, @watcher_link_args.third)
+      end
+    end
+
+    context 'with all options' do
+      should "prefix all elements in replace with a # to make them valid css selectors" do
+        watcher_tag(:object, :user, :id => 'abc', :replace => ['abc', 'def'])
+        assert_equal :object, @watcher_link_args.first
+        assert_equal :user, @watcher_link_args.second
+        assert_equal({:id => 'abc', :replace => ['#abc', '#def']}, @watcher_link_args.third)
+      end
+    end
+  end
+end