public final void expelMember(final MapleGuildCharacter initiator, final String name, final int cid) {
	final Iterator<MapleGuildCharacter> itr = members.iterator();
	while (itr.hasNext()) {
	    final MapleGuildCharacter mgc = itr.next();

	    if (mgc.getId() == cid && initiator.getGuildRank() < mgc.getGuildRank()) {
		broadcast(GuildPacket.memberLeft(mgc, true));

		bDirty = true;
		members.remove(mgc);

		try {
		    if (mgc.isOnline()) {
			WorldRegistryImpl.getInstance().getChannel(mgc.getChannel()).setGuildAndRank(cid, 0, 5);
		    } else {
			try {
			    Connection con = DatabaseConnection.getConnection();
			    PreparedStatement ps = con.prepareStatement("INSERT INTO notes (`to`, `from`, `message`, `timestamp`) VALUES (?, ?, ?, ?)");
			    ps.setString(1, mgc.getName());
			    ps.setString(2, initiator.getName());
			    ps.setString(3, "You have been expelled from the guild.");
			    ps.setLong(4, System.currentTimeMillis());
			    ps.executeUpdate();
			    ps.close();
			} catch (SQLException e) {
			    System.err.println("Error sending guild msg 'expelled'." + e);
			}
			WorldRegistryImpl.getInstance().getChannel(1).setOfflineGuildStatus((short) 0, (byte) 5, cid);
		    }
		} catch (RemoteException re) {
		    re.printStackTrace();
		    return;
		}
	    }
	}
    }