It would appear that _read_data only returns a single Pdata object if you chuck it a large string rather than the linked list of Pdata objects it would if you chucked it a FileUpload instance. Surely it should return a linekd list of Pdata objects in either case?