diff --git a/include/binder/MemoryBase.h b/include/binder/MemoryBase.h
index fa0b8d1..463e26d 100644
--- a/include/binder/MemoryBase.h
+++ b/include/binder/MemoryBase.h
@@ -40,9 +40,6 @@
     const sp<IMemoryHeap>& getHeap() const { return mHeap; }
 
 private:
-    // Backwards compatibility for libdatabase_sqlcipher (http://b/8253769).
-    MemoryBase(const sp<IMemoryHeap>& heap, long offset, unsigned int size);
-
     size_t          mSize;
     ssize_t         mOffset;
     sp<IMemoryHeap> mHeap;
diff --git a/libs/binder/IMemory.cpp b/libs/binder/IMemory.cpp
index 947ac19..cd2451a 100644
--- a/libs/binder/IMemory.cpp
+++ b/libs/binder/IMemory.cpp
@@ -298,11 +298,11 @@
         uint32_t flags = reply.readInt32();
         uint32_t offset = reply.readInt32();
 
-        ALOGE_IF(err, "binder=%p transaction failed fd=%d, size=%d, err=%d (%s)",
+        ALOGE_IF(err, "binder=%p transaction failed fd=%d, size=%ld, err=%d (%s)",
                 asBinder().get(), parcel_fd, size, err, strerror(-err));
 
         int fd = dup( parcel_fd );
-        ALOGE_IF(fd==-1, "cannot dup fd=%d, size=%d, err=%d (%s)",
+        ALOGE_IF(fd==-1, "cannot dup fd=%d, size=%ld, err=%d (%s)",
                 parcel_fd, size, err, strerror(errno));
 
         int access = PROT_READ;
@@ -315,7 +315,7 @@
             mRealHeap = true;
             mBase = mmap(0, size, access, MAP_SHARED, fd, offset);
             if (mBase == MAP_FAILED) {
-                ALOGE("cannot map BpMemoryHeap (binder=%p), size=%d, fd=%d (%s)",
+                ALOGE("cannot map BpMemoryHeap (binder=%p), size=%ld, fd=%d (%s)",
                         asBinder().get(), size, fd, strerror(errno));
                 close(fd);
             } else {
diff --git a/libs/binder/MemoryBase.cpp b/libs/binder/MemoryBase.cpp
index 835124f..033066b 100644
--- a/libs/binder/MemoryBase.cpp
+++ b/libs/binder/MemoryBase.cpp
@@ -14,7 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "MemoryBase"
 
 #include <stdlib.h>
 #include <stdint.h>
@@ -32,14 +31,6 @@
 {
 }
 
-MemoryBase::MemoryBase(const sp<IMemoryHeap>& heap,
-        long offset, unsigned int size)
-    : mSize(size), mOffset(offset), mHeap(heap)
-{
-    ALOGW("Using temporary compatibility workaround for usage of MemoryBase "
-          "private API. Please fix your application!");
-}
-
 sp<IMemoryHeap> MemoryBase::getMemory(ssize_t* offset, size_t* size) const
 {
     if (offset) *offset = mOffset;
