SPMeshRow* SPMeshRow::getPrevMeshRow()
{
    SPMeshRow *result = 0;

    for (SPObject* obj = getPrev(); obj; obj = obj->getPrev()) {
        // The closest previous SPObject that is an SPMeshRow *should* be ourself.
        if (SP_IS_MESHROW(obj)) {
            SPMeshRow* meshrow = SP_MESHROW(obj);
            // Sanity check to ensure we have a proper sibling structure.
            if (meshrow->getNextMeshRow() == this) {
                result = meshrow;
            } else {
                g_warning("SPMeshRow previous/next relationship broken");
            }
            break;
        }
    }

    return result;
}