diff --git a/Tools/TimePlot.hs b/Tools/TimePlot.hs
--- a/Tools/TimePlot.hs
+++ b/Tools/TimePlot.hs
@@ -498,69 +498,92 @@
                   (maybe True (\tt -> t <  tt) toTime)
 
 showHelp = mapM_ putStrLn [ "",
-  "tplot - a tool for drawing timing diagrams. See http://www.haskell.org/haskellwiki/Timeplot",
-  "Usage: tplot [-o OFILE] [-of {png|pdf|ps|svg|x}] [-or 640x480] -if IFILE [-tf TF] ",
-  "             [{+|-}k Pat1 Kind1 {+|-}k Pat2 Kind2 ...] [{+|-}dk KindN] [-fromTime TIME] [-toTime TIME]",
+  "tplot - a tool for drawing timing diagrams.",
+  "        See http://www.haskell.org/haskellwiki/Timeplot",
+  "Usage: tplot [-o OFILE] [-of {png|pdf|ps|svg|x}] [-or 640x480]",
+  "             -if IFILE [-tf TF] ",
+  "             [{+|-}k Pat1 Kind1 {+|-}k Pat2 Kind2 ...] [{+|-}dk KindN]",
+  "             [-fromTime TIME] [-toTime TIME]",
   "  -o  OFILE  - output file (required if -of is not x)",
-  "  -of        - output format (x means draw result in a window, default: extension of -o)",
-  "               x is only available if you installed timeplot with --flags=gtk",
+  "  -of        - output format (x means draw result in a window, default:",
+  "               extension of -o); x is only available if you installed",
+  "               timeplot with --flags=gtk",
   "  -or        - output resolution (default 640x480)",
   "  -if IFILE  - input file; '-' means 'read from stdin'",
-  "  -tf TF     - time format: 'num' means that times are floating-point numbers",
-  "               (for instance, seconds elapsed since an event); 'date PATTERN' means that times are dates",
-  "               in the format specified by PATTERN - see http://linux.die.net/man/3/strptime,",
-  "               for example, [%Y-%m-%d %H:%M:%S] parses dates like [2009-10-20 16:52:43]. ",
-  "               We also support %OS for fractional seconds (i.e. %OS will parse 12.4039 or 12,4039).",
+  "  -tf TF     - time format: 'num' means that times are floating-point",
+  "               numbers (for instance, seconds elapsed since an event);",
+  "               'date PATTERN' means that times are dates in the format",
+  "               specified by PATTERN - see",
+  "               http://linux.die.net/man/3/strptime, for example,",
+  "               [%Y-%m-%d %H:%M:%S] parses dates like [2009-10-20 16:52:43].",
+  "               We also support %OS for fractional seconds (i.e. %OS will",
+  "               parse 12.4039 or 12,4039) and %^[+-][N]s for ten-powers ",
+  "               of seconds since epoch, for example %^-3s is ms since epoch.",
   "               Default: 'date %Y-%m-%d %H:%M:%OS'",
   "  {+|-}dk    - set default diagram kind",
-  "  {+|-}k P K - set diagram kind for tracks matching regex P (in the format of regex-tdfa, which",
-  "               is at least POSIX-compliant and supports some GNU extensions) to K ",
+  "  {+|-}k P K - set diagram kind for tracks matching regex P (in the format",
+  "               of regex-tdfa, which is at least POSIX-compliant and",
+  "               supports some GNU extensions) to K",
   "               EXPLANATION:",
-  "               -k clauses are matched till first success, +k are all matched:",
-  "               a track is drawn acc. to all matching +k, to +dk AND ALSO to the",
-  "               first matching -k, or -dk if none of -k match",
-  "  -fromTime  - filter records whose time is >= this time (formatted according to -tf)",
-  "  -toTime    - filter records whose time is <  this time (formatted according to -tf)",
+  "               -k clauses are matched till first success, +k are all",
+  "               matched: a track is drawn acc. to all matching +k, to +dk",
+  "               AND ALSO to the first matching -k, or -dk if none of -k",
+  "               match",
+  "  -fromTime  - filter records whose time is >= this time (formatted",
+  "               according to -tf)",
+  "  -toTime    - filter records whose time is <  this time (formatted",
+  "               according to -tf)",
   "",
   "Input format: lines of the following form:",
   "1234 >A - at time 1234, activity A has begun",
   "1234 <A - at time 1234, activity A has ended",
   "1234 !B - at time 1234, pulse event B has occured",
   "1234 !B TEXT - at time 1234, pulse event B has occured with label TEXT",
-  "1234 @B COLOR - at time 1234, the status of B became such that it is appropriate to draw it with color COLOR :)",
-  "1234 =C VAL - at time 1234, parameter C had numeric value VAL (for example, HTTP response time)",
-  "1234 =D `EVENT - at time 1234, event EVENT occured in process D (for example, HTTP response code)",
+  "1234 @B COLOR - at time 1234, the status of B became such that it is",
+  "                appropriate to draw it with color COLOR :)",
+  "1234 =C VAL - at time 1234, parameter C had numeric value VAL (for example,",  
+  "              HTTP response time)",
+  "1234 =D `EVENT - at time 1234, event EVENT occured in process D (for",
+  "                 example, HTTP response code)",
   "It is assumed that many events of the same kind may occur at once.",
   "Diagram kinds:",
   "  'none' - do not plot this track",
-  "  'event' is for event diagrams: activities are drawn like --[===]--- , pulse events like --|-- with a label over '|'",
-  "  'duration XXXX' - plot any kind of diagram over the *durations* of events on a track (delimited by > ... <)",
-  "     for example 'duration quantile 300 0.25,0.5,0.75' will plot these quantiles of durations of the events.",
-  "     This is useful where your log looks like 'Started processing' ... 'Finished processing': you can plot",
-  "     processing durations without computing them yourself.",
-  "  'duration[C] XXXX' - same as 'duration', but of a track's name we only take the part before character C.",
-  "     For example, if you have processes named 'MACHINE-PID' (i.e. UNIT027-8532) say 'begin something' / ",
-  "     'end something' and you're interested in the properties of per-machine durations, use duration[-].",
-  "  'count N' is for activity counts: a histogram is drawn with granularity of N time units, where",
-  "     the bin corresponding to [t..t+N) has value 'what was the maximal number of active events or impulses",
-  "     in that interval'.",
-  "  'freq N [TYPE]' is for event frequency histograms: a histogram of type TYPE (stacked or ",
-  "     clustered, default clustered) is drawn for each time bin of size N, about the *frequency* ",
-  "     of various ` events",
-  "  'hist N [TYPE]' is for event count histograms: a histogram of type TYPE (stacked or ",
-  "     clustered, default clustered) is drawn for each time bin of size N, about the *counts* of ",
-  "     various ` events",
-  "  'quantile N q1,q2,..' (example: quantile 100 0.25,0.5,0.75) - a bar chart of corresponding",
-  "     quantiles in time bins of size N",
-  "  'binf N v1,v2,..' (example: binf 100 1,2,5,10) - a histogram of frequency of values falling",
-  "     into bins min..v1, v1..v2, .., v2..max in time bins of size N",
-  "  'binh N v1,v2,..' (example: binf 100 1,2,5,10) - a histogram of counts of values falling",
-  "     into bins min..v1, v1..v2, .., v2..max in time bins of size N",
+  "  'event' is for event diagrams: activities are drawn like --[===]--- ,",
+  "     pulse events like --|-- with a label over '|'",
+  "  'duration XXXX' - plot any kind of diagram over the *durations* of events",  
+  "     on a track (delimited by > ... <), for example 'duration quantile",
+  "     300 0.25,0.5,0.75' will plot these quantiles of durations of the",
+  "     events. This is useful where your log looks like 'Started processing'",
+  "     ... 'Finished processing': you can plot processing durations without",
+  "     computing them yourself.",
+  "  'duration[C] XXXX' - same as 'duration', but of a track's name we only",
+  "     take the part before character C. For example, if you have processes",
+  "     named 'MACHINE-PID' (i.e. UNIT027-8532) say 'begin something' / ",
+  "     'end something' and you're interested in the properties of per-machine",  
+  "     durations, use duration[-].",
+  "  'count N' is for activity counts: a histogram is drawn with granularity",
+  "     of N time units, where the bin corresponding to [t..t+N) has value",
+  "     'what was the maximal number of active events or impulses in that",
+  "     interval'.",
+  "  'freq N [TYPE]' is for event frequency histograms: a histogram of type",
+  "     TYPE (stacked or clustered, default clustered) is drawn for each time",
+  "     bin of size N, about the *frequency* of various ` events",
+  "  'hist N [TYPE]' is for event count histograms: a histogram of type TYPE",
+  "     (stacked or clustered, default clustered) is drawn for each time bin",
+  "     of size N, about the *counts* of various ` events",
+  "  'quantile N q1,q2,..' (example: quantile 100 0.25,0.5,0.75) - a bar chart",
+  "     of corresponding quantiles in time bins of size N",
+  "  'binf N v1,v2,..' (example: binf 100 1,2,5,10) - a histogram of frequency",
+  "     of values falling into bins min..v1, v1..v2, .., v2..max in time bins",
+  "     of size N",
+  "  'binh N v1,v2,..' (example: binf 100 1,2,5,10) - a histogram of counts of",
+  "     values falling into bins min..v1, v1..v2, .., v2..max in time bins of",
+  "     size N",
   "  'lines'  - a simple line plot of numeric values",
   "  'dots'   - a simple dot plot of numeric values",
   "  'cumsum' - a simple line plot of the sum of the numeric values",
-  "  'sum N'  - a simple line plot of the sum of the numeric values in time bins of size N",
-  "N is measured in units or in seconds."
+  "  'sum N'  - a simple line plot of the sum of the numeric values in time",
+  "     bins of size N. N is measured in units or in seconds."
   ]
 
 
diff --git a/timeplot.cabal b/timeplot.cabal
--- a/timeplot.cabal
+++ b/timeplot.cabal
@@ -1,5 +1,5 @@
 Name: timeplot
-Version: 0.2.16
+Version: 0.2.17
 License: BSD3
 License-file: LICENSE
 Copyright: Eugene Kirpichov, 2009
