this used to work in data.table v1.9.4 but now throws an error in v1.9.6:
dt <- data.table(i=1:10, f=as.factor(1:10))
dt[f==3]
the thrown error is: Error in bmerge(i, x, leftcols, rightcols, io <- FALSE, xo, roll = 0,  :  x.'f' is a factor column being joined to i.'V1' which is type 'double'. Factor columns must join to factor or character columns.
the error can be avoided by adding additional conditions, e.g. dt[f==3 & TRUE] or by comparing to characters (as indicated by the error itself): dt[f=="3"]. not sure, whether this is a bug or a feature, but I though it's worthwhile reporting.