public class Feed : Object {
}

public class SoupTest : Object {
	private Soup.SessionAsync session;
	public SoupTest () {
		session = new Soup.SessionAsync ();
	}
	// The failing method
	public void handle_response1 (Feed feed, string body) {
		stdout.printf ("1: Parsing string beginning with %s\n", body[0:20]);
	}
	// The working method
	public void handle_response2 (string body) {
		stdout.printf ("2: Parsing string beginning with %s\n", body[0:20]);
	}
	public void send_get () {
		var feed = new Feed ();
		var msg1 = new Soup.Message ("GET", "http://google.com/");
		session.queue_message (msg1, (s, m) => {
				stdout.printf (@"1: Got response: $(m.status_code)\n");
				this.handle_response1 (feed,
									  (string) m.response_body.data);
			});

		var msg2 = new Soup.Message ("GET", "http://google.com/");
		session.queue_message (msg2, (s, m) => {
				stdout.printf (@"2: Got response: $(m.status_code)\n");
				this.handle_response2 ((string) m.response_body.data);
			});
	}
}

void main () {
	var test = new SoupTest ();
	var loop = new MainLoop ();
	test.send_get ();
	loop.run ();
}