diff --git a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/R4EUIAllTests.java b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/R4EUIAllTests.java
index cd84870..e698eac 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/R4EUIAllTests.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/R4EUIAllTests.java
@@ -21,7 +21,6 @@
 import junit.textui.TestRunner;
 
 import org.eclipse.mylyn.reviews.r4e.ui.tests.feature.CloneAnomaliesCommentsTests;
-import org.eclipse.mylyn.reviews.r4e.ui.tests.feature.CompareReviewItemsTests;
 import org.eclipse.mylyn.reviews.r4e.ui.tests.feature.DuplicateAnomalyTests;
 import org.eclipse.mylyn.reviews.r4e.ui.tests.feature.PostponedAnomaliesTests;
 import org.eclipse.mylyn.reviews.r4e.ui.tests.feature.PreferencesTests;
@@ -67,7 +66,7 @@
 		suite.addTestSuite(DuplicateAnomalyTests.class);
 		suite.addTestSuite(ReviewWithStrangeCharTest.class);
 		suite.addTestSuite(UpgradeVersionTests.class);
-		suite.addTestSuite(CompareReviewItemsTests.class);
+//		suite.addTestSuite(CompareReviewItemsTests.class);
 
 		//TODO Add test cases here
 		//suite.addTestSuite(ReviewGroupTests.class);
diff --git a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/feature/CompareReviewItemsTests.java b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/feature/CompareReviewItemsTests.java
index 011f83e..3fe8e7f 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/feature/CompareReviewItemsTests.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/feature/CompareReviewItemsTests.java
@@ -215,7 +215,7 @@
 
 		r4eAssert.setTest("Create Review");
 		fReview = fProxy.getReviewProxy().createReview(fGroup, TestConstants.REVIEW_TEST_TYPE_INFORMAL,
-				TestConstants.REVIEW_TEST_NAME_INF, TestConstants.REVIEW_TEST_DESCRIPTION,
+				TestConstants.REVIEW_TEST_NAME_INF_COMPARE, TestConstants.REVIEW_TEST_DESCRIPTION,
 				TestConstants.REVIEW_TEST_DUE_DATE, TestConstants.REVIEW_TEST_PROJECT,
 				TestConstants.REVIEW_TEST_COMPONENTS, TestConstants.REVIEW_TEST_ENTRY_CRITERIA,
 				TestConstants.REVIEW_TEST_OBJECTIVES, TestConstants.REVIEW_TEST_REFERENCE_MATERIALS);
@@ -223,7 +223,7 @@
 		r4eAssert.assertNotNull(fReview.getParticipantContainer());
 		r4eAssert.assertNotNull(fReview.getAnomalyContainer());
 		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_TYPE_INFORMAL, fReview.getReview().getType());
-		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_NAME_INF, fReview.getReview().getName());
+		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_NAME_INF_COMPARE, fReview.getReview().getName());
 		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_DESCRIPTION, fReview.getReview().getExtraNotes());
 		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_DUE_DATE, fReview.getReview().getDueDate());
 		r4eAssert.assertEquals(TestConstants.REVIEW_TEST_PROJECT, fReview.getReview().getProject());
@@ -261,7 +261,7 @@
 		r4eAssert.assertNotNull(fItem);
 		r4eAssert.assertEquals(R4EUIModelController.getReviewer(), fItem.getItem().getAddedById());
 		r4eAssert.assertEquals("The.committer@some.com", fItem.getItem().getAuthorRep());
-		r4eAssert.assertEquals("second Java Commit", fItem.getItem().getDescription());
+		r4eAssert.assertEquals("third Java Commit", fItem.getItem().getDescription());
 		r4eAssert.assertEquals(4, fItem.getChildren().length);
 		for (int i = 0; i < fItem.getChildren().length; i++) {
 			if (((R4EUIFileContext) fItem.getChildren()[i]).getName().equals(TestUtils.JAVA_FILE1_PROJ_NAME)) {
diff --git a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/utils/TestConstants.java b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/utils/TestConstants.java
index c5c6bec..f8f49ce 100644
--- a/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/utils/TestConstants.java
+++ b/org.eclipse.mylyn.reviews.r4e.ui.tests/src/org/eclipse/mylyn/reviews/r4e/ui/tests/utils/TestConstants.java
@@ -98,6 +98,8 @@
 
 	public static final String REVIEW_TEST_NAME_INF = "testReviewInf";
 
+	public static final String REVIEW_TEST_NAME_INF_COMPARE = "testReviewInfCompare";
+
 	public static final String REVIEW_DUPLICATE_NAME_INF = "testReviewDuplicateInf";
 
 	//The following chars should not be used as strange chars: \/<>:;*"?'
diff --git a/pom.xml b/pom.xml
index ee87bdd..ed7f602 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,12 +36,12 @@
         <enabled>true</enabled>
       </snapshots>
       <id>mylyn-snapshots</id>
-      <url>http://download.eclipse.org/mylyn/maven/snapshots</url>
-      <layout>default</layout>
+      <url>http://download.eclipse.org/mylyn/snapshots/weekly</url>      
+       <layout>default</layout>
     </repository>
     <repository>
       <id>mylyn-releases</id>
-      <url>http://download.eclipse.org/mylyn/maven/releases</url>
+      <url>http://download.eclipse.org/mylyn/releases/latest</url>
       <layout>default</layout>
     </repository>
   </repositories>
@@ -56,6 +56,11 @@
       </activation>
       <repositories>
         <repository>
+          <id>eclipse-mylyn-reviews</id>
+          <layout>p2</layout>
+          <url>${mylyn-reviews-repository-url}</url>
+        </repository>
+        <repository>
           <id>eclipse-mylyn-commons</id>
           <layout>p2</layout>
           <url>${mylyn-commons-repository-url}</url>
@@ -75,12 +80,7 @@
 			<layout>p2</layout>
 			<url>${mylyn-context-repository-url}</url>
 		</repository>
-        <repository>
-          <id>eclipse-mylyn-reviews</id>
-          <layout>p2</layout>
-          <url>${mylyn-reviews-repository-url}</url>
-        </repository>
-		<!--  Orbit is taken from parent pom
+<!--  Orbit is taken from parent pom
         <repository>
            <id>eclipse-mylyn-orbit-committers</id>
            <layout>p2</layout>
