diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
index 7b45f71..c977ff8 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoryRoot.java
@@ -683,7 +683,7 @@
 	 * @return CVSTag[]
 	 */
 	public CVSTag[] getAllKnownTags(String remotePath) {
-		Set tags = new HashSet();
+		Set tags = new HashSet(dateTags);
 		addAllKnownTagsForParents(getKnownParentTagCacheEntryFor(remotePath),
 				tags);
 		TagCacheEntry entry = getTagCacheEntryFor(remotePath, false);
@@ -694,7 +694,7 @@
 	}
 
 	public CVSTag[] getAllKnownTags() {
-		Set tags = new HashSet();
+		Set tags = new HashSet(dateTags);
 		addAllKnownTagsForChildren(rootTagCacheEntry, tags);
 		return (CVSTag[]) tags.toArray(new CVSTag[tags.size()]);
 	}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
index 98c4838..e70b28f 100644
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
+++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RepositoryRootTest.java
@@ -11,6 +11,7 @@
 package org.eclipse.team.tests.ccvs.core.provider;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 import junit.framework.Test;
@@ -394,4 +395,22 @@
 		assertEquals(0, knownTags.length);
 	}
 
+	public void testDateTags() throws CoreException {
+		CVSTag dateTag = new CVSTag(new Date());
+		repositoryManager.addDateTag(getRepository(), dateTag);
+		// verify if date tags are returned by repository manager
+		CVSTag[] dateTags = repositoryManager.getDateTags(getRepository());
+		assertEquals(1, dateTags.length);
+		assertEquals(dateTag, dateTags[0]);
+		dateTags = repositoryManager.getKnownTags(getRepository(), CVSTag.DATE);
+		assertEquals(1, dateTags.length);
+		assertEquals(dateTag, dateTags[0]);
+		// verify if date tags are returned in list of known tags for every
+		// project
+		IProject project = createProject("Project_1", (String) null);
+		CVSTag[] allTags = repositoryManager.getKnownTags(CVSWorkspaceRoot
+				.getCVSFolderFor(project));
+		assertEquals(1, allTags.length);
+		assertEquals(dateTag, allTags[0]);
+	}
 }
