Now with more speed *AND* correct logic!