diff --git a/crypto/secure_hash.h b/crypto/secure_hash.h
index 173fd0a..23349b0 100644
--- a/crypto/secure_hash.h
+++ b/crypto/secure_hash.h
@@ -8,8 +8,10 @@
 #include "base/basictypes.h"
 #include "crypto/crypto_export.h"
 
+namespace base {
 class Pickle;
 class PickleIterator;
+}
 
 namespace crypto {
 
@@ -30,13 +32,13 @@
   // Serialize the context, so it can be restored at a later time.
   // |pickle| will contain the serialized data.
   // Returns whether or not |pickle| was filled.
-  virtual bool Serialize(Pickle* pickle) = 0;
+  virtual bool Serialize(base::Pickle* pickle) = 0;
 
   // Restore the context that was saved earlier.
   // |data_iterator| allows this to be used as part of a larger pickle.
   // |pickle| holds the saved data.
   // Returns success or failure.
-  virtual bool Deserialize(PickleIterator* data_iterator) = 0;
+  virtual bool Deserialize(base::PickleIterator* data_iterator) = 0;
 
  protected:
   SecureHash() {}
diff --git a/crypto/secure_hash_openssl.cc b/crypto/secure_hash_openssl.cc
index a2997b4..9e77c3f 100644
--- a/crypto/secure_hash_openssl.cc
+++ b/crypto/secure_hash_openssl.cc
@@ -40,14 +40,14 @@
     SHA256_Final(result.safe_buffer(), &ctx_);
   }
 
-  bool Serialize(Pickle* pickle) override;
-  bool Deserialize(PickleIterator* data_iterator) override;
+  bool Serialize(base::Pickle* pickle) override;
+  bool Deserialize(base::PickleIterator* data_iterator) override;
 
  private:
   SHA256_CTX ctx_;
 };
 
-bool SecureHashSHA256OpenSSL::Serialize(Pickle* pickle) {
+bool SecureHashSHA256OpenSSL::Serialize(base::Pickle* pickle) {
   if (!pickle)
     return false;
 
@@ -60,7 +60,7 @@
   return true;
 }
 
-bool SecureHashSHA256OpenSSL::Deserialize(PickleIterator* data_iterator) {
+bool SecureHashSHA256OpenSSL::Deserialize(base::PickleIterator* data_iterator) {
   if (!data_iterator)
     return false;
 
diff --git a/crypto/secure_hash_unittest.cc b/crypto/secure_hash_unittest.cc
index c21c365..facf476 100644
--- a/crypto/secure_hash_unittest.cc
+++ b/crypto/secure_hash_unittest.cc
@@ -53,7 +53,7 @@
       crypto::SecureHash::SHA256));
   scoped_ptr<crypto::SecureHash> ctx2(crypto::SecureHash::Create(
       crypto::SecureHash::SHA256));
-  Pickle pickle;
+  base::Pickle pickle;
   ctx1->Update(input1.data(), input1.size());
   ctx1->Update(input2.data(), input2.size());
   ctx1->Update(input3.data(), input3.size());
@@ -64,7 +64,7 @@
 
   ctx1->Finish(output1, sizeof(output1));
 
-  PickleIterator data_iterator(pickle);
+  base::PickleIterator data_iterator(pickle);
   EXPECT_TRUE(ctx2->Deserialize(&data_iterator));
   ctx2->Update(input4.data(), input4.size());
   ctx2->Update(input5.data(), input5.size());
