diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 39d516b..f12ed17 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -14,6 +14,10 @@
      limitations under the License.
 -->
 
+<!--
+  Run test with:
+  adb shell am instrument -w com.android.vcard.tests/android.test.InstrumentationTestRunner
+-->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.vcard.tests"
         android:sharedUserId="com.android.uid.test">
@@ -22,10 +26,6 @@
         <uses-library android:name="android.test.runner" />
     </application>
 
-    <instrumentation android:name=".VCardTestRunner"
-            android:targetPackage="com.android.vcard.tests"
-            android:label="TestRunner running all Android vCard Library Tests" />
-
     <instrumentation android:name="android.test.InstrumentationTestRunner"
             android:targetPackage="com.android.vcard.tests"
             android:label="TestRunner letting users run each test including new one" />
diff --git a/tests/src/com/android/vcard/tests/VCardTestRunner.java b/tests/src/com/android/vcard/tests/VCardTestRunner.java
deleted file mode 100644
index a220a58..0000000
--- a/tests/src/com/android/vcard/tests/VCardTestRunner.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.vcard.tests;
-
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-
-import junit.framework.TestSuite;
-
-/**
- * Usage: adb shell am instrument -w com.android.vcard.tests/.VCardTestRunnerTestRunner
- */
-public class VCardTestRunner extends InstrumentationTestRunner {
-    @Override
-    public TestSuite getAllTests() {
-        TestSuite suite = new InstrumentationTestSuite(this);
-        suite.addTestSuite(VCardBuilderTest.class);
-        suite.addTestSuite(VCardEntryTests.class);
-        suite.addTestSuite(VCardParserTests.class);
-        suite.addTestSuite(VCardUtilsTests.class);
-        suite.addTestSuite(VCardTestUtilsTests.class);
-        suite.addTestSuite(VCardImporterTests.class);
-        suite.addTestSuite(VCardExporterTests.class);
-        suite.addTestSuite(VCardJapanizationTests.class);
-        suite.addTestSuite(VCardImporterNestTests.class);
-        return suite;
-    }
-
-    @Override
-    public ClassLoader getLoader() {
-        return VCardTestRunner.class.getClassLoader();
-    }
-}
diff --git a/tests/src/com/android/vcard/tests/testutils/ExportTestProvider.java b/tests/src/com/android/vcard/tests/testutils/ExportTestProvider.java
index 6b5def5..edf02f1 100644
--- a/tests/src/com/android/vcard/tests/testutils/ExportTestProvider.java
+++ b/tests/src/com/android/vcard/tests/testutils/ExportTestProvider.java
@@ -155,7 +155,7 @@
 
             @Override
             public int getColumnIndex(String columnName) {
-                TestCase.assertEquals(Contacts._ID, columnName);
+                TestCase.assertEquals(Data.CONTACT_ID, columnName);
                 return 0;
             }
 
@@ -168,6 +168,11 @@
             }
 
             @Override
+            public long getLong(int columnIndex) {
+                return getInt(columnIndex);
+            }
+
+            @Override
             public String getString(int columnIndex) {
                 return String.valueOf(getInt(columnIndex));
             }
