diff --git a/src/class_linker_test.cc b/src/class_linker_test.cc
index 48408c8..e207fd9 100644
--- a/src/class_linker_test.cc
+++ b/src/class_linker_test.cc
@@ -1,11 +1,12 @@
 // Copyright 2011 Google Inc. All Rights Reserved.
 
-#include "common_test.h"
 #include "class_linker.h"
+
+#include "UniquePtr.h"
+#include "common_test.h"
 #include "dex_cache.h"
 #include "dex_file.h"
 #include "heap.h"
-
 #include "gtest/gtest.h"
 
 namespace art {
@@ -273,7 +274,7 @@
 }
 
 TEST_F(ClassLinkerTest, FindClassNested) {
-  scoped_ptr<const DexFile> dex(OpenTestDexFile("Nested"));
+  UniquePtr<const DexFile> dex(OpenTestDexFile("Nested"));
   const PathClassLoader* class_loader = AllocPathClassLoader(dex.get());
 
   Class* outer = class_linker_->FindClass("LNested;", class_loader);
@@ -328,7 +329,7 @@
   EXPECT_EQ(0U, JavaLangObject->NumStaticFields());
   EXPECT_EQ(0U, JavaLangObject->NumInterfaces());
 
-  scoped_ptr<const DexFile> dex(OpenTestDexFile("MyClass"));
+  UniquePtr<const DexFile> dex(OpenTestDexFile("MyClass"));
   const PathClassLoader* class_loader = AllocPathClassLoader(dex.get());
   AssertNonExistentClass("LMyClass;");
   Class* MyClass = class_linker_->FindClass("LMyClass;", class_loader);
@@ -451,8 +452,8 @@
 }
 
 TEST_F(ClassLinkerTest, TwoClassLoadersOneClass) {
-  scoped_ptr<const DexFile> dex_1(OpenTestDexFile("MyClass"));
-  scoped_ptr<const DexFile> dex_2(OpenTestDexFile("MyClass"));
+  UniquePtr<const DexFile> dex_1(OpenTestDexFile("MyClass"));
+  UniquePtr<const DexFile> dex_2(OpenTestDexFile("MyClass"));
   const PathClassLoader* class_loader_1 = AllocPathClassLoader(dex_1.get());
   const PathClassLoader* class_loader_2 = AllocPathClassLoader(dex_2.get());
   Class* MyClass_1 = class_linker_->FindClass("LMyClass;", class_loader_1);
@@ -464,7 +465,7 @@
 
 TEST_F(ClassLinkerTest, StaticFields) {
   // TODO: uncomment expectations of initial values when InitializeClass works
-  scoped_ptr<const DexFile> dex(OpenTestDexFile("Statics"));
+  UniquePtr<const DexFile> dex(OpenTestDexFile("Statics"));
   const PathClassLoader* class_loader = AllocPathClassLoader(dex.get());
   Class* statics = class_linker_->FindClass("LStatics;", class_loader);
   class_linker_->EnsureInitialized(statics);
@@ -534,7 +535,7 @@
 }
 
 TEST_F(ClassLinkerTest, Interfaces) {
-  scoped_ptr<const DexFile> dex(OpenTestDexFile("Interfaces"));
+  UniquePtr<const DexFile> dex(OpenTestDexFile("Interfaces"));
   const PathClassLoader* class_loader = AllocPathClassLoader(dex.get());
   Class* I = class_linker_->FindClass("LInterfaces$I;", class_loader);
   Class* J = class_linker_->FindClass("LInterfaces$J;", class_loader);
