void Dispel( P_CHAR pSource, PyObject* disp_args )
void Dispel( P_CHAR pSource, bool  )
	void Dispel( P_CHAR pSource, PyObject* disp_args )	{		if ( dispelFunc_.isNull() )			return;		// Get everything before the last dot		if ( dispelFunc_.contains( "." ) )		{			// Find the last dot			int position = dispelFunc_.findRev( "." );			QString sModule = dispelFunc_.left( position );			QString sFunction = dispelFunc_.right( dispelFunc_.length() - ( position + 1 ) );			PyObject* pModule = PyImport_ImportModule( const_cast<char*>( sModule.latin1() ) );			if ( pModule )			{				PyObject* pFunc = PyObject_GetAttrString( pModule, const_cast<char*>( sFunction.latin1() ) );				if ( pFunc && PyCallable_Check( pFunc ) )				{					// Create our Argument list					PyObject* p_args = PyTuple_New( 4 );					if ( isItemSerial( destSer ) )						PyTuple_SetItem( p_args, 0, PyGetItemObject( FindItemBySerial( destSer ) ) );					else if ( isCharSerial( destSer ) )						PyTuple_SetItem( p_args, 0, PyGetCharObject( FindCharBySerial( destSer ) ) );					else					{						Py_INCREF( Py_None );						PyTuple_SetItem( p_args, 0, Py_None );					}					PyTuple_SetItem( p_args, 1, args );					PyTuple_SetItem( p_args, 2, PyGetCharObject( pSource ) );					PyTuple_SetItem( p_args, 3, disp_args );					PyObject* result = PyEval_CallObject( pFunc, p_args );					Py_XDECREF( result );					reportPythonError( sModule );					Py_DECREF( p_args );				}				Py_XDECREF( pFunc );			}			Py_XDECREF( pModule );		}		Py_DECREF( args );	}