diff --git a/python/flatbuffers/builder.py b/python/flatbuffers/builder.py
index 068c413f7691157fb1322c829a270be8f9f45d8c..4c78d7a68c94d899d363d86c5867656e59c486b1 100644
--- a/python/flatbuffers/builder.py
+++ b/python/flatbuffers/builder.py
@@ -93,7 +93,7 @@ class Builder(object):
         The internal buffer is grown as needed.
         """
 
-        if not (0 <= initialSize < (2**UOffsetTFlags.bytewidth - 1)):
+        if not (0 <= initialSize <= self.MaxBufferSize()):
             msg = "flatbuffers: Cannot create Builder larger than 2 gigabytes."
             raise BuilderSizeError(msg)
 
@@ -104,6 +104,12 @@ class Builder(object):
         self.objectEnd = None
         self.vtables = []
 
+    def MaxBufferSize(self):
+        """
+        Maximum buffer size is 2Gb.
+        """
+        return 2**31
+
     def Output(self):
         """
         Output returns the portion of the buffer that has been used for
@@ -238,7 +244,7 @@ class Builder(object):
     def growByteBuffer(self):
         """Doubles the size of the byteslice, and copies the old data towards
            the end of the new buffer (since we build the buffer backwards)."""
-        if not len(self.Bytes) <= 2**20:
+        if not len(self.Bytes) <= self.MaxBufferSize():
             msg = "flatbuffers: cannot grow buffer beyond 2 gigabytes"
             raise BuilderSizeError(msg)