If "time" is a POSIXlt variable and "y" is numeric, then plot(time, y) works but plot(y ~ time) doesn't. For example, time <- as.POSIXlt( Sys.time() + 1:100) y <- rnorm(100) plot(time,y) # succeeds plot(y ~ time) # fails The reason for this is that there's a plot.POSIXlt method that converts time to a POSIXct variable, and most of the plotting machinery works fine on those. Manual conversion to POSIXct will also make the plot(y ~ time) version work. Should this conversion be made automatically? It looks like doing something in the internal implementation of model.frame would be necessary. It's probably not a good idea to do something specific to POSIXlt types, but what about attempting to coerce any unrecognized object to double? It's easy to implement as.double.POSIXlt. Duncan Murdoch