diff --git a/awkward/array/jagged.py b/awkward/array/jagged.py
index <HASH>..<HASH> 100644
--- a/awkward/array/jagged.py
+++ b/awkward/array/jagged.py
@@ -12,6 +12,7 @@ try:
 except ImportError:
     from collections import Iterable
 
+import pyarrow
 import awkward.array.base
 import awkward.persist
 import awkward.type
@@ -134,6 +135,9 @@ class JaggedArray(awkward.array.base.AwkwardArrayWithContent):
     @classmethod
     def fromoffsets(cls, offsets, content):
         offsets = cls._util_toarray(offsets, cls.INDEXTYPE, cls.numpy.ndarray)
+        if hasattr(offsets.base, 'base') and isinstance(offsets.base.base, pyarrow.lib.Buffer):
+            # special exception to prevent copy in awkward.fromarrow
+            pass
         if offsets.base is not None:
             # We rely on the starts,stops slices to be views.
             # If offsets is already a view, the base will not be offsets but its underlying base.
Create special exception in jagged fromoffsets for zero-copy arrow conversion