     if !_isClassOrObjCExistential(T.self) {
       return _storage.isUniquelyReferencedOrPinned_native_noSpareBits()
     }
-    return _storage.isUniquelyReferencedOrPinnedNative()
+    return _storage.isUniquelyReferencedOrPinnedNative() && _isNative
   }
 
   /// Convert to an NSArray.

    if !_isClassOrObjCExistential(T.self) {
      return _storage.isUniquelyReferenced_native_noSpareBits()
    }
    return _storage.isUniquelyReferencedNative()
  }

  /// Return true iff this buffer's storage is either

  mutating func requestUniqueMutableBackingBuffer(minimumCapacity: Int)
    -> NativeBuffer?
  {
    if _fastPath(isUniquelyReferenced()) {
      let b = _native
      if _fastPath(b.capacity >= minimumCapacity) {
        return b
