add: if ( ! iface ) return FALSE;
context: gboolean division_drag_data_received ( GtkTreeDragDest * drag_dest, GtkTreePath * dest_path,				       GtkSelectionData * selection_data ){    if ( DEBUG )	printf ("division_drag_data_received %p, %p, %p\n", drag_dest, dest_path, 		selection_data);    if ( dest_path && selection_data )    {	GtkTreeModel * model;	GtkTreePath * orig_path;	GtkTreeIter iter, iter_parent, orig_iter, orig_parent_iter;	gchar * name;	gint no_dest_division, no_dest_sub_division, no_orig_division, no_orig_sub_division;	gpointer sub_division, dest_sub_division, orig_division, dest_division, pointer;	enum meta_tree_row_type orig_type;	gpointer  transaction = NULL;	MetatreeInterface * iface;	GSList *list_tmp_transactions;	gtk_tree_get_row_drag_data (selection_data, &model, &orig_path);	iface = g_object_get_data ( G_OBJECT(model), "metatree-interface" );	metatree_get_row_properties ( model, orig_path,				      NULL, &no_orig_division, &no_orig_sub_division, 				      &pointer );	orig_type = metatree_get_row_type ( model, orig_path );	metatree_get_row_properties ( model, dest_path,				      &name, &no_dest_division, &no_dest_sub_division, 				      NULL );	if ( ! name )	{	    gtk_tree_path_up ( dest_path );	    metatree_get_row_properties ( model, dest_path,					  &name, &no_dest_division, &no_dest_sub_division, 					  NULL );	}		switch ( orig_type )	{	    case META_TREE_TRANSACTION:		transaction = (gpointer ) pointer;		if ( transaction )		{		    move_transaction_to_sub_division ( transaction, model, 						       orig_path, dest_path,						       no_dest_division, no_dest_sub_division );		}		break;	    case META_TREE_SUB_DIV:		dest_division = iface -> get_div_pointer ( no_dest_division );		orig_division = iface -> get_div_pointer ( no_orig_division );		sub_division = iface -> get_sub_div_pointer ( no_orig_division, no_orig_sub_division );		dest_sub_division = iface -> get_sub_div_pointer_from_name ( no_dest_division,									     iface -> sub_div_name (sub_division),									     1 );		if ( dest_sub_division )		    no_dest_sub_division = iface -> sub_div_id ( dest_sub_division );		else		    no_dest_sub_division = 0;		/* Populate tree */		gtk_tree_model_get_iter ( model, &iter_parent, dest_path );		if ( iface -> get_sub_div_pointer ( no_orig_division, 						    no_orig_sub_division ) )		{		    gtk_tree_store_append ( GTK_TREE_STORE(model), &iter, &iter_parent);		}		else		{		    GtkTreeIter * p_iter;		    p_iter = get_iter_from_div ( model, no_dest_division, 0 );		    if ( p_iter )		    {			iter = *p_iter;		    }		}		fill_sub_division_row ( model, iface, &iter, 					dest_division, dest_sub_division );		list_tmp_transactions = gsb_transaction_data_get_transactions_list ();		while ( list_tmp_transactions )		{		    gint transaction_number_tmp;		    transaction_number_tmp = gsb_transaction_data_get_transaction_number (list_tmp_transactions -> data);		    if ( transaction_number_tmp &&			 iface -> transaction_div_id (gsb_transaction_data_get_pointer_to_transaction (transaction_number_tmp)) == no_orig_division &&			 iface -> transaction_sub_div_id (gsb_transaction_data_get_pointer_to_transaction (transaction_number_tmp)) == no_orig_sub_division )		    {			GtkTreePath * path;			path = gtk_tree_model_get_path ( model, &iter );			move_transaction_to_sub_division ( gsb_transaction_data_get_pointer_to_transaction (transaction_number_tmp), model, 							   NULL, path,							   no_dest_division, 							   no_dest_sub_division );		    }		    list_tmp_transactions = list_tmp_transactions -> next;		}		gtk_tree_model_get_iter ( model, &orig_iter, orig_path );		/* Update original parent. */		if ( gtk_tree_model_iter_parent ( model, &orig_parent_iter, &orig_iter ) )		{		    fill_division_row ( model, iface, &orig_parent_iter, orig_division );		}		gtk_tree_store_remove ( GTK_TREE_STORE(model), &orig_iter );		iface -> remove_sub_div ( no_orig_division, no_orig_sub_division );		modification_fichier(TRUE);		break;	    default:		break;	}    }        return FALSE;}