Here is a simple test program to reproduce the crash:
from PySide.QtGui import *
app = QApplication ( sys.argv )
window = QFrame()
layout = QGridLayout ( window )
widget = layout.takeAt ( -1 )
sys.exit ( app.exec_() )
Admittedly, -1 is not a valid index, but other layout classes handle the error
more gracefully. If QGridLayout is replaced by QVBoxLayout, for example,
takeAt(-1) returns None.
Although it may seem contrived to pass -1 to takeAt(), -1 is returned by
QGridLayout.indexOf() when passed an invalid widget.