This still needs tests. The patch #13 is working.