Persisting objects in a ListBox ObjectCollection
If you don't mind using a little bit of LINQ, it can be simplified (and optimized) as such:

static class BukkitServerDataWriter
{
    private static readonly XmlSerializer xml = new XmlSerializer(
        typeof(List&lt;BukkitServer&gt;),
        new[] { typeof(BukkitServer) });

    public static void SaveServers(ICollection objects)
    {
        using (var writer = new XmlTextWriter("servers.xml", Encoding.UTF8))
        {
            xml.Serialize(writer, objects.Cast&lt;BukkitServer&gt;().ToList());
        }
    }
}