This is not an answer but some extra info for this question. The *sinister* behaviour is not occurring at `arcpy.Polygon` as suggested by @FelixIP, it is occuring at the getPart() bit of code. I tweaked your code and ran it on a dataset with just a triangle. I had set the coordinate system to be British National Grid when I had created it. <!-- language: lang-py --> import arcpy arcpy.env.addOutputsToMap = True infc = "tri" outBuffer=r'c:\scratch\OUT_BUFFER.shp' outPart=r'c:\scratch\OUT_PART.shp' d=arcpy.Describe(infc) SR=d.spatialReference with arcpy.da.SearchCursor(infc, ("SHAPE@","LABEL")) as rows: for shp,label in rows: buf=shp.buffer(5) arcpy.CopyFeatures_management(buf, outBuffer) n=buf.partCount for i in xrange (n): prt=buf.getPart(i) # Print out sequence of XY points print(prt) for p in prt: print str(p.X ) + "," + str(p.Y) pgon=arcpy.Polygon(prt,SR) arcpy.CopyFeatures_management(pgon, outPart) break Zooming into one corner of the buffer of the triangle in edit mode we can see many vertices: [![Vertices of buffer][1]][1] Infact there are 42 vertices for the whole geometry. My adjusted code reading the output of the getPart() returns only 11. [![Clipped part][2]][2] So the bug is occuring when the getPart() is called to return the Array of Points. [1]: https://i.sstatic.net/NMr6J.png [2]: https://i.sstatic.net/nKUR5.png