diff --git a/pub/doc/Frida.1 b/pub/doc/Frida.1
index 9847d58fdc2175b8b9b4ee67f969af7f0d676dc7..89feb252061f3695cdd8a31dee7633cdb869783d 100644
--- a/pub/doc/Frida.1
+++ b/pub/doc/Frida.1
@@ -1,11 +1,11 @@
 .\"     Title: frida
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
-.\"      Date: 02/04/2010
+.\"      Date: 02/12/2010
 .\"    Manual: 
 .\"    Source: 
 .\"
-.TH "FRIDA" "1" "02/04/2010" "" ""
+.TH "FRIDA" "1" "02/12/2010" "" ""
 .\" disable hyphenation
 .nh
 .\" disable justification (adjust text to left margin only)
@@ -17,27 +17,39 @@ Frida \- Fast reliable interactive data analysis
 .sp
 \fBfrida2, frida\fR
 .sp
+.SH "NEWS"
+The first JCNS School on Data Analysis for Quasielastic Neutron Scattering with FRIDA will take place 28\-29 April 2010 at Garching\&. Register now: http://www\&.jcns\&.info/DataAnalysis2010/
+.sp
 .SH "DESCRIPTION"
-FRIDA is software for scientific data analysis, originally written for inelastic neutron scattering\&. Its data model is quite generic (data files consist of x\-y\-dy tables that are differentiated by z coordinates), so that it can be used for many different kinds of observational data\&.
+FRIDA is software for scientific data analysis, primarily written for inelastic neutron scattering\&. Its data model is quite generic (data files consist of x\-y\-dy tables that are differentiated by z coordinates), so that it can be used for many different kinds of observational data\&.
+.sp
+Frida1, written in FORTRAN, was developed in the 1990s\&. The original name IDA was changed to FRIDA just because there were too many other open\-source projects all called IDA\&.
 .sp
-Frida1, written in FORTRAN, was developped in the 1990s\&. The original name IDA was changed to FRIDA just because there were too many other open\-source projects all called IDA\&.
+Frida2 is a rewrite in C++\&. It is the standard tool for data analysis at the backscattering spectrometer SPHERES\&. The more specific routines for time\-of\-flight spectroscopy are currently being ported from Frida1 to Frida2, so that Frida1 can be phased out by mid\-2010\&.
 .sp
-Frida2 is written in C++\&. It is being actively developed\&.
+Frida1 includes raw data reduction routines for numerous backscattering and time\-of\-flight spectrometers\&. These routines are not ported to Frida2, but to the separate raw\-data reduction package SLAW: http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/slaw/\&.
 .sp
 .SH "AUTHOR"
 Joachim Wuttke <j\&.wuttke@fz\-juelich\&.de>
 .sp
-.SH "RESSOURCES"
-Main web site: http://www\&.messen\-und\-deuten\&.de/frida/
+.SH "INSTALLATION"
+Installation guide: http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/doku/doku\&.php?id=frida:installation
 .sp
-Download location: http://www\&.messen\-und\-deuten\&.de/frida/src/ (old download location at sourceforge\&.net no longer maintained \- too much advertising there, too slow, too complicated)
+Download location: http://www\&.messen\-und\-deuten\&.de/frida/src/
+.sp
+The old download location at sourceforge\&.net is no longer maintained (too much advertising, too slow, too complicated)
 .sp
 Development snapshot: http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/frida2\&.git/
 .sp
+.SH "DOCUMENTATION"
+Main web site: http://www\&.messen\-und\-deuten\&.de/frida/
+.sp
 Documentation wiki: http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/doku/doku\&.php?id=frida:frida
 .sp
 .SH "BUGS"
-Numerous\&. See http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/flyspray/
+See http://iffwww\&.iff\&.kfa\-juelich\&.de/~wuttke/flyspray/index\&.php?project=2&do=index&switch=1\&.
+.sp
+Send bug reports to j\&.wuttke@fz\-juelich\&.de\&.
 .sp
 .SH "COPYING"
 Copyright \(co 2009 Joachim Wuttke\&. Free use of this software is granted under the terms of the GNU General Public License (GPL)\&.
@@ -48,3 +60,8 @@ j.wuttke@fz-juelich.de
 .RS 4
 \%mailto:j.wuttke@fz-juelich.de
 .RE
+.IP " 2." 4
+j.wuttke@fz
+.RS 4
+\%mailto:j.wuttke@fz
+.RE
diff --git a/pub/doc/frida2.man.html b/pub/doc/frida2.man.html
index f03ba7990aaaf0f55f516887f8f0a8eaa6fad60c..ec01e63eaa6d4f9ded82fa78f949e650e90090b6 100644
--- a/pub/doc/frida2.man.html
+++ b/pub/doc/frida2.man.html
@@ -3,8 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.5.2" />
-<title>FRIDA(1)</title>
+<meta name="generator" content="AsciiDoc 8.2.7" />
 <style type="text/css">
 /* Debug borders */
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
@@ -91,7 +90,7 @@ span#author {
 }
 span#email {
 }
-span#revnumber, span#revdate, span#revremark {
+span#revision {
   font-family: sans-serif;
 }
 
@@ -111,21 +110,17 @@ div#footer-badges {
   padding-bottom: 0.5em;
 }
 
-div#preamble {
-  margin-top: 1.5em;
-  margin-bottom: 1.5em;
-}
+div#preamble,
 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
 div.admonitionblock {
-  margin-top: 1.0em;
+  margin-right: 10%;
+  margin-top: 1.5em;
   margin-bottom: 1.5em;
 }
 div.admonitionblock {
-  margin-top: 2.0em;
-  margin-bottom: 2.0em;
-  margin-right: 10%;
-  color: #606060;
+  margin-top: 2.5em;
+  margin-bottom: 2.5em;
 }
 
 div.content { /* Block element content. */
@@ -161,25 +156,26 @@ div.sidebarblock > div.content {
   padding: 0.5em;
 }
 
+div.listingblock {
+  margin-right: 0%;
+}
 div.listingblock > div.content {
   border: 1px solid silver;
   background: #f4f4f4;
   padding: 0.5em;
 }
 
-div.quoteblock, div.verseblock {
-  padding-left: 1.0em;
-  margin-left: 1.0em;
-  margin-right: 10%;
-  border-left: 5px solid #dddddd;
-  color: #777777;
+div.quoteblock {
+  padding-left: 2.0em;
 }
-
 div.quoteblock > div.attribution {
   padding-top: 0.5em;
   text-align: right;
 }
 
+div.verseblock {
+  padding-left: 2.0em;
+}
 div.verseblock > div.content {
   white-space: pre;
 }
@@ -202,17 +198,17 @@ div.admonitionblock .icon {
 }
 div.admonitionblock td.content {
   padding-left: 0.5em;
-  border-left: 3px solid #dddddd;
+  border-left: 2px solid silver;
 }
 
 div.exampleblock > div.content {
-  border-left: 3px solid #dddddd;
-  padding-left: 0.5em;
+  border-left: 2px solid silver;
+  padding: 0.5em;
 }
 
 div.imageblock div.content { padding-left: 0; }
+div.imageblock img { border: 1px solid silver; }
 span.image img { border-style: none; }
-a.image:visited { color: white; }
 
 dl {
   margin-top: 0.8em;
@@ -222,7 +218,6 @@ dt {
   margin-top: 0.5em;
   margin-bottom: 0;
   font-style: normal;
-  color: navy;
 }
 dd > *:first-child {
   margin-top: 0.1em;
@@ -231,123 +226,44 @@ dd > *:first-child {
 ul, ol {
     list-style-position: outside;
 }
-ol.arabic {
+div.olist > ol {
   list-style-type: decimal;
 }
-ol.loweralpha {
+div.olist2 > ol {
   list-style-type: lower-alpha;
 }
-ol.upperalpha {
-  list-style-type: upper-alpha;
-}
-ol.lowerroman {
-  list-style-type: lower-roman;
-}
-ol.upperroman {
-  list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
-  margin-top: 0.1em;
-  margin-bottom: 0.1em;
-}
 
 div.tableblock > table {
   border: 3px solid #527bbd;
 }
-thead, p.table.header {
+thead {
   font-family: sans-serif;
   font-weight: bold;
 }
 tfoot {
   font-weight: bold;
 }
-td > div.verse {
-  white-space: pre;
-}
-p.table {
-  margin-top: 0;
-}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
-  border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
-  border-left-style: none;
-  border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
-  border-top-style: none;
-  border-bottom-style: none;
-}
-
 
-div.hdlist {
+div.hlist {
   margin-top: 0.8em;
   margin-bottom: 0.8em;
 }
-div.hdlist tr {
+div.hlist td {
   padding-bottom: 15px;
 }
-dt.hdlist1.strong, td.hdlist1.strong {
-  font-weight: bold;
-}
-td.hdlist1 {
+td.hlist1 {
   vertical-align: top;
   font-style: normal;
   padding-right: 0.8em;
-  color: navy;
 }
-td.hdlist2 {
+td.hlist2 {
   vertical-align: top;
 }
-div.hdlist.compact tr {
-  margin: 0;
-  padding-bottom: 0;
-}
-
-.comment {
-  background: yellow;
-}
-
-.footnote, .footnoteref {
-  font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
-  vertical-align: super;
-}
-
-#footnotes {
-  margin: 20px 0 20px 0;
-  padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
-  margin: 0 0 5px 0;
-}
-
-#footnotes hr {
-  border: none;
-  border-top: 1px solid silver;
-  height: 1px;
-  text-align: left;
-  margin-left: 0;
-  width: 20%;
-  min-width: 100px;
-}
-
 
 @media print {
   div#footer-badges { display: none; }
 }
 
-div#toc {
-  margin-bottom: 2.5em;
-}
-
 div#toctitle {
   color: #527bbd;
   font-family: sans-serif;
@@ -426,146 +342,21 @@ div.verseblock-attribution {
 }
 
 div.exampleblock-content {
-  border-left: 3px solid #dddddd;
+  border-left: 2px solid silver;
   padding-left: 0.5em;
 }
 
 /* IE6 sets dynamically generated links as visited. */
 div#toc a:visited { color: blue; }
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-window.onload = function(){asciidoc.footnotes();}
-var asciidoc = {  // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
-  function getText(el) {
-    var text = "";
-    for (var i = el.firstChild; i != null; i = i.nextSibling) {
-      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
-        text += i.data;
-      else if (i.firstChild != null)
-        text += getText(i);
-    }
-    return text;
-  }
 
-  function TocEntry(el, text, toclevel) {
-    this.element = el;
-    this.text = text;
-    this.toclevel = toclevel;
-  }
-
-  function tocEntries(el, toclevels) {
-    var result = new Array;
-    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
-    // Function that scans the DOM tree for header elements (the DOM2
-    // nodeIterator API would be a better technique but not supported by all
-    // browsers).
-    var iterate = function (el) {
-      for (var i = el.firstChild; i != null; i = i.nextSibling) {
-        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
-          var mo = re.exec(i.tagName);
-          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
-            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
-          }
-          iterate(i);
-        }
-      }
-    }
-    iterate(el);
-    return result;
-  }
-
-  var toc = document.getElementById("toc");
-  var entries = tocEntries(document.getElementById("content"), toclevels);
-  for (var i = 0; i < entries.length; ++i) {
-    var entry = entries[i];
-    if (entry.element.id == "")
-      entry.element.id = "_toc_" + i;
-    var a = document.createElement("a");
-    a.href = "#" + entry.element.id;
-    a.appendChild(document.createTextNode(entry.text));
-    var div = document.createElement("div");
-    div.appendChild(a);
-    div.className = "toclevel" + entry.toclevel;
-    toc.appendChild(div);
-  }
-  if (entries.length == 0)
-    toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
-  var cont = document.getElementById("content");
-  var noteholder = document.getElementById("footnotes");
-  var spans = cont.getElementsByTagName("span");
-  var refs = {};
-  var n = 0;
-  for (i=0; i<spans.length; i++) {
-    if (spans[i].className == "footnote") {
-      n++;
-      // Use [\s\S] in place of . so multi-line matches work.
-      // Because JavaScript has no s (dotall) regex flag.
-      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
-      noteholder.innerHTML +=
-        "<div class='footnote' id='_footnote_" + n + "'>" +
-        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
-        n + "</a>. " + note + "</div>";
-      spans[i].innerHTML =
-        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
-        "' title='View footnote' class='footnote'>" + n + "</a>]";
-      var id =spans[i].getAttribute("id");
-      if (id != null) refs["#"+id] = n;
-    }
-  }
-  if (n == 0)
-    noteholder.parentNode.removeChild(noteholder);
-  else {
-    // Process footnoterefs.
-    for (i=0; i<spans.length; i++) {
-      if (spans[i].className == "footnoteref") {
-        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
-        href = href.match(/#.*/)[0];  // Because IE return full URL.
-        n = refs[href];
-        spans[i].innerHTML =
-          "[<a href='#_footnote_" + n +
-          "' title='View footnote' class='footnote'>" + n + "</a>]";
-      }
-    }
-  }
+/* Because IE6 child selector is broken. */
+div.olist2 ol {
+  list-style-type: lower-alpha;
 }
-
+div.olist2 div.olist ol {
+  list-style-type: decimal;
 }
-/*]]>*/
-</script>
+</style>
 <script type="text/javascript">
 /*<![CDATA[*/
 /*
@@ -1793,6 +1584,7 @@ else
 }
 /*]]>*/
 </script>
+<title>FRIDA(1)</title>
 </head>
 <body>
 <div id="header">
@@ -1806,23 +1598,27 @@ FRIDA(1) Manual Page
 </p>
 </div>
 </div>
-<div id="content">
-<h2 id="_synopsis">SYNOPSIS</h2>
+<h2>SYNOPSIS</h2>
 <div class="sectionbody">
-<div class="paragraph"><p><strong>frida1, ida</strong></p></div>
-<div class="paragraph"><p><strong>frida2, frida</strong></p></div>
+<div class="para"><p><strong>frida1, ida</strong></p></div>
+<div class="para"><p><strong>frida2, frida</strong></p></div>
+</div>
+<h2 id="_news">NEWS</h2>
+<div class="sectionbody">
+<div class="para"><p>The first JCNS School on Data Analysis for Quasielastic Neutron Scattering
+with FRIDA will take place 28-29 April 2010 at Garching. Register now: <a href="http://www.jcns.info/DataAnalysis2010/">http://www.jcns.info/DataAnalysis2010/</a></p></div>
 </div>
 <h2 id="_description">DESCRIPTION</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>FRIDA is software for scientific data analysis, primarily written for inelastic neutron scattering. Its data model is quite generic (data files consist of x-y-dy tables that are differentiated by z coordinates), so that it can be used for many different kinds of observational data.</p></div>
-<div class="paragraph"><p>Frida1, written in FORTRAN, was developed in the 1990s. The original name IDA was changed to FRIDA just because there were too many other open-source projects all called IDA.</p></div>
-<div class="paragraph"><p>Frida2 is a rewrite in C++.
+<div class="para"><p>FRIDA is software for scientific data analysis, primarily written for inelastic neutron scattering. Its data model is quite generic (data files consist of x-y-dy tables that are differentiated by z coordinates), so that it can be used for many different kinds of observational data.</p></div>
+<div class="para"><p>Frida1, written in FORTRAN, was developed in the 1990s. The original name IDA was changed to FRIDA just because there were too many other open-source projects all called IDA.</p></div>
+<div class="para"><p>Frida2 is a rewrite in C++.
 It is the standard tool for data analysis
 at the backscattering spectrometer SPHERES.
 The more specific routines for time-of-flight spectroscopy
 are currently being ported from Frida1 to Frida2,
 so that Frida1 can be phased out by mid-2010.</p></div>
-<div class="paragraph"><p>Frida1 includes raw data reduction routines
+<div class="para"><p>Frida1 includes raw data reduction routines
 for numerous backscattering and time-of-flight spectrometers.
 These routines are not ported to Frida2,
 but to the separate raw-data reduction package SLAW:
@@ -1830,36 +1626,34 @@ but to the separate raw-data reduction package SLAW:
 </div>
 <h2 id="_author">AUTHOR</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Joachim Wuttke &lt;<a href="mailto:j.wuttke@fz-juelich.de">j.wuttke@fz-juelich.de</a>&gt;</p></div>
+<div class="para"><p>Joachim Wuttke &lt;<a href="mailto:j.wuttke@fz-juelich.de">j.wuttke@fz-juelich.de</a>&gt;</p></div>
 </div>
 <h2 id="_installation">INSTALLATION</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Installation guide: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation</a></p></div>
-<div class="paragraph"><p>Download location: <a href="http://www.messen-und-deuten.de/frida/src/">http://www.messen-und-deuten.de/frida/src/</a></p></div>
-<div class="paragraph"><p>The old download location at sourceforge.net is no longer maintained
+<div class="para"><p>Installation guide: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation</a></p></div>
+<div class="para"><p>Download location: <a href="http://www.messen-und-deuten.de/frida/src/">http://www.messen-und-deuten.de/frida/src/</a></p></div>
+<div class="para"><p>The old download location at sourceforge.net is no longer maintained
 (too much advertising, too slow, too complicated)</p></div>
-<div class="paragraph"><p>Development snapshot: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/">http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/</a></p></div>
+<div class="para"><p>Development snapshot: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/">http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/</a></p></div>
 </div>
 <h2 id="_documentation">DOCUMENTATION</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Main web site: <a href="http://www.messen-und-deuten.de/frida/">http://www.messen-und-deuten.de/frida/</a></p></div>
-<div class="paragraph"><p>Documentation wiki: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida</a></p></div>
+<div class="para"><p>Main web site: <a href="http://www.messen-und-deuten.de/frida/">http://www.messen-und-deuten.de/frida/</a></p></div>
+<div class="para"><p>Documentation wiki: <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida</a></p></div>
 </div>
 <h2 id="_bugs">BUGS</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>See <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1">http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1</a>.</p></div>
-<div class="paragraph"><p>Send bug reports to <a href="mailto:j.wuttke@fz-juelich.de">j.wuttke@fz-juelich.de</a>.</p></div>
+<div class="para"><p>See <a href="http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1">http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1</a>.</p></div>
+<div class="para"><p>Send bug reports to <a href="mailto:j.wuttke@fz">j.wuttke@fz</a>-juelich.de.</p></div>
 </div>
 <h2 id="_copying">COPYING</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Copyright &#169; 2009 Joachim Wuttke. Free use of this software is
+<div class="para"><p>Copyright &#169; 2009 Joachim Wuttke. Free use of this software is
 granted under the terms of the GNU General Public License (GPL).</p></div>
 </div>
-</div>
-<div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2010-02-06 14:35:57 CEST
+Last updated 2010-02-12 11:14:47 CEST
 </div>
 </div>
 </body>
diff --git a/pub/doc/frida2.man.txt b/pub/doc/frida2.man.txt
index d2bd716c6dbaae425ca440edc91c25f3fdfc1586..6f1b8ea7cf2c36cf9aa921d29cbf7d1cbe0e67e9 100644
--- a/pub/doc/frida2.man.txt
+++ b/pub/doc/frida2.man.txt
@@ -13,6 +13,12 @@ SYNOPSIS
 
 *frida2, frida*
 
+NEWS
+----
+
+The first JCNS School on Data Analysis for Quasielastic Neutron Scattering
+with FRIDA will take place 28-29 April 2010 at Garching. Register now: http://www.jcns.info/DataAnalysis2010/
+
 DESCRIPTION
 -----------
 
diff --git a/pub/doc/frida2.man.xml b/pub/doc/frida2.man.xml
index 73901f068d586d0876b77bbefc608f07169b6f03..7163ca97159cf043f831ba33eebf9314a283199b 100644
--- a/pub/doc/frida2.man.xml
+++ b/pub/doc/frida2.man.xml
@@ -1,63 +1,81 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 <refentry lang="en">
 <refmeta>
 <refentrytitle>frida</refentrytitle>
 <manvolnum>1</manvolnum>
-<refmiscinfo class="source">&nbsp;</refmiscinfo>
-<refmiscinfo class="manual">&nbsp;</refmiscinfo>
 </refmeta>
 <refnamediv>
     <refname>Frida</refname>
     <refpurpose>Fast reliable interactive data analysis</refpurpose>
 </refnamediv>
-<refsynopsisdiv id="_synopsis">
+<refsynopsisdiv>
 <simpara><emphasis role="strong">frida1, ida</emphasis></simpara>
+
 <simpara><emphasis role="strong">frida2, frida</emphasis></simpara>
+
 </refsynopsisdiv>
+<refsect1 id="_news">
+<title>NEWS</title>
+<simpara>The first JCNS School on Data Analysis for Quasielastic Neutron Scattering
+with FRIDA will take place 28-29 April 2010 at Garching. Register now: <ulink url="http://www.jcns.info/DataAnalysis2010/">http://www.jcns.info/DataAnalysis2010/</ulink></simpara>
+
+</refsect1>
 <refsect1 id="_description">
 <title>DESCRIPTION</title>
 <simpara>FRIDA is software for scientific data analysis, primarily written for inelastic neutron scattering. Its data model is quite generic (data files consist of x-y-dy tables that are differentiated by z coordinates), so that it can be used for many different kinds of observational data.</simpara>
+
 <simpara>Frida1, written in FORTRAN, was developed in the 1990s. The original name IDA was changed to FRIDA just because there were too many other open-source projects all called IDA.</simpara>
+
 <simpara>Frida2 is a rewrite in C++.
 It is the standard tool for data analysis
 at the backscattering spectrometer SPHERES.
 The more specific routines for time-of-flight spectroscopy
 are currently being ported from Frida1 to Frida2,
 so that Frida1 can be phased out by mid-2010.</simpara>
+
 <simpara>Frida1 includes raw data reduction routines
 for numerous backscattering and time-of-flight spectrometers.
 These routines are not ported to Frida2,
 but to the separate raw-data reduction package SLAW:
 <ulink url="http://iffwww.iff.kfa-juelich.de/~wuttke/slaw/">http://iffwww.iff.kfa-juelich.de/~wuttke/slaw/</ulink>.</simpara>
+
 </refsect1>
 <refsect1 id="_author">
 <title>AUTHOR</title>
 <simpara>Joachim Wuttke &lt;<ulink url="mailto:j.wuttke@fz-juelich.de">j.wuttke@fz-juelich.de</ulink>&gt;</simpara>
+
 </refsect1>
 <refsect1 id="_installation">
 <title>INSTALLATION</title>
 <simpara>Installation guide: <ulink url="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:installation</ulink></simpara>
+
 <simpara>Download location: <ulink url="http://www.messen-und-deuten.de/frida/src/">http://www.messen-und-deuten.de/frida/src/</ulink></simpara>
+
 <simpara>The old download location at sourceforge.net is no longer maintained
 (too much advertising, too slow, too complicated)</simpara>
+
 <simpara>Development snapshot: <ulink url="http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/">http://iffwww.iff.kfa-juelich.de/~wuttke/frida2.git/</ulink></simpara>
+
 </refsect1>
 <refsect1 id="_documentation">
 <title>DOCUMENTATION</title>
 <simpara>Main web site: <ulink url="http://www.messen-und-deuten.de/frida/">http://www.messen-und-deuten.de/frida/</ulink></simpara>
+
 <simpara>Documentation wiki: <ulink url="http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida">http://iffwww.iff.kfa-juelich.de/~wuttke/doku/doku.php?id=frida:frida</ulink></simpara>
+
 </refsect1>
 <refsect1 id="_bugs">
 <title>BUGS</title>
 <simpara>See <ulink url="http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1">http://iffwww.iff.kfa-juelich.de/~wuttke/flyspray/index.php?project=2&amp;do=index&amp;switch=1</ulink>.</simpara>
-<simpara>Send bug reports to <ulink url="mailto:j.wuttke@fz-juelich.de">j.wuttke@fz-juelich.de</ulink>.</simpara>
+
+<simpara>Send bug reports to <ulink url="mailto:j.wuttke@fz">j.wuttke@fz</ulink>-juelich.de.</simpara>
+
 </refsect1>
 <refsect1 id="_copying">
 <title>COPYING</title>
 <simpara>Copyright &#169; 2009 Joachim Wuttke. Free use of this software is
 granted under the terms of the GNU General Public License (GPL).</simpara>
+
 </refsect1>
 </refentry>
diff --git a/pub/src/curve.cpp b/pub/src/curve.cpp
index c9b56ae9b647ebe87700c67861ede15872a7c92b..cf132d899618585e41f6bc72402f63d7be47e2d8 100644
--- a/pub/src/curve.cpp
+++ b/pub/src/curve.cpp
@@ -441,13 +441,13 @@ typedef struct {
 
 //! Callback routine for use in lm_minimize: function evaluation.
 
-void globalEvaluate( double* par, int m_dat, double* fvec, 
-                     void *data, int *info )
+void globalEvaluate( const double* par, int m_dat, const void *data, 
+                     double* fvec, int *info )
 // arguments (required by lm_minimize):
 //    par   r/w  function parameters, to be optimized
 //    m_dat r    number of data points
-//    fvec  w    vector of residues, to be minimized
 //    data  r    pointer to arbitrary data, here defined as FitDatTyp
+//    fvec  w    vector of residues, to be minimized
 //    info  w    can be use to terminate the minimization
 {
     try {
@@ -497,8 +497,9 @@ void globalEvaluate( double* par, int m_dat, double* fvec,
 
 //! Callback routine for use in lm_minimize: monitor fit progress.
 
-void globalPrintout( int n_par, double* par, int m_dat, double* fvec, 
-                     void *data, int iflag, int iter, int nfev )
+void globalPrintout( int n_par, const double* par, int m_dat, const void *data, 
+                     const double* fvec, 
+                     int printflags, int iflag, int iter, int nfev )
 // arguments (required by lm_minimize; see also globalEvaluate):
 //       iflag : 0 (init) 1 (outer loop) 2(inner loop) -1(terminated)
 //       iter  : outer loop counter
@@ -564,7 +565,8 @@ void NCurveFile::Fit( bool _allow_slow_conv )
     CScan *D;
     CCurve *C;
     vector<double> Par;
-    lm_control_type control;
+    lm_limits_struct limits;
+    lm_status_struct status;
     FitDatTyp data;
     double ysum1, ysum2, ydev2;
     allow_slow_conv = _allow_slow_conv;
@@ -590,10 +592,10 @@ void NCurveFile::Fit( bool _allow_slow_conv )
 
         uint np = fc->T->npar();
                 
-        lm_initialize_control( &control );
-        control.epsilon = NFitTune::Epsilon;
-        control.stepbound = NFitTune::Factor;
-        control.maxcall = NFitTune::nCall;
+        limits = lm_limits_double;
+        limits.epsilon = NFitTune::Epsilon;
+        limits.stepbound = NFitTune::Factor;
+        limits.maxcall = NFitTune::nCall;
 
         for (uint j=0; j<fc->nScan(); j++) {
             if ( fc->ProtectedScans.contains( j ) )
@@ -622,15 +624,16 @@ void NCurveFile::Fit( bool _allow_slow_conv )
             if ( NFitTune::nPrint ) printf("\n");
 
             data.timeout = time(NULL) + NFitTune::maxtime;
-            lm_minimize( D->size(), npfree, &(Par[0]), 
-                         globalEvaluate, globalPrintout, &data, &control );
-            if( control.info==10 )
+            lmmin( npfree, &(Par[0]), D->size(), &data,
+                   globalEvaluate, &limits, &status,
+                   globalPrintout, 0 );
+            if( status.info==11 )
                 throw string( "exception in fit function" );
 
             for ( uint i=0; i<npfree; i++ )
                 printf(" %12g", Par[i]);
 
-            C->Quality[0] = (double) control.info;
+            C->Quality[0] = (double) status.info;
 
             // calculate coefficient of determination R^2:
             uint nd = fd->nPts(j);
@@ -640,16 +643,16 @@ void NCurveFile::Fit( bool _allow_slow_conv )
                 ysum2 += SQR( D->y[i] );
             }
             ydev2 = ysum2 - SQR( ysum1 )/nd; // = nd * <(y-<y>)^2>
-            C->Quality[1] = ydev2!=0 ? 1 - SQR(control.fnorm) / ydev2 : -1;
+            C->Quality[1] = ydev2!=0 ? 1 - SQR(status.fnorm) / ydev2 : -1;
                         
             // mean deviation:
-            C->Quality[2] = SQR(control.fnorm) / nd;
+            C->Quality[2] = SQR(status.fnorm) / nd;
 
             printf( " (%3d->%9.7g)",
-                    control.nfev, C->Quality[NFitTune::mFitMetric] );
+                    status.nfev, C->Quality[NFitTune::mFitMetric] );
 
             // print status:
-            printf( "%s\n", lm_shortmsg[ control.info ] );
+            printf( "%s\n", lm_shortmsg[ status.info ] );
         }
     }
     allow_slow_conv = true;
diff --git a/pub/src/func.cpp b/pub/src/func.cpp
index 8d6ac84b100ee860f2ad7ef345d158bf3e02507b..91ad32c6a60a311b84f4de347b5bf8741992004a 100644
--- a/pub/src/func.cpp
+++ b/pub/src/func.cpp
@@ -58,7 +58,7 @@ double func_acosd(double v) { return (-1<=v && v<=1) ? 360./twopi*acos(v) : 0; }
 double func_atand(double v) { return 360./twopi*atan(v); }
 double func_acotd(double v) { return v!=0 ? 360./twopi*atan(1/v) : 90; }
 
-double func_sinh(double v) { return sinh(v); } // IN PROGRESS ....
+double func_sinh(double v) { return sinh(v); }
 double func_cosh(double v) { return cosh(v); }
 double func_tanh(double v) { return tanh(v); }
 double func_coth(double v) { double t=tanh(v); return t==0?0:1/t;}
@@ -73,9 +73,9 @@ double func_erfc(double v) { return gsl_sf_erfc(v); }
 
 double func_sinc(double v) { return v==0 ? 1 : sin(v)/v; }
 
-double func_ceil(double v)  { return ceil(v); }      // smallest int >= arg
-double func_floor(double v) { return floor(v); }     // largest  int <= arg
-double func_nint(double v)  { return round(v); } // nearest  int
+double func_ceil(double v)  { return ceil(v); }
+double func_floor(double v) { return floor(v); }
+double func_nint(double v)  { return round(v); }
 
 //**************************************************************************//
 //*   Functions of two arguments                                           *//
diff --git a/pub/src/func.h b/pub/src/func.h
index 9a54532bff0f4ffa221c3114dd23b724753d2128..9aa84315ddf5905e6bfd413d9447256341dc596c 100644
--- a/pub/src/func.h
+++ b/pub/src/func.h
@@ -15,30 +15,14 @@ class CFunc { // public (short) interface => TAKE CARE
     class CCoord coord(class CCoord *co1, class CCoord *co2) const;
     class CCoord coord(class CCoord *co1, class CCoord *co2,
                        class CCoord *co3) const;
-    CFunc(string name_in, double(*f_in)(double)) {
-        // cout << "DEBUG create CFunc(1) ["<<name_in<<"]\n";
-        s = name_in;
-        narg = 1;
-        f1 = f_in;
-    };
-    CFunc(string name_in, double(*f_in)(double, double)) {
-        // cout << "DEBUG create CFunc(2) ["<<name_in<<"]\n";
-        s = name_in;
-        narg = 2;
-        f2 = f_in;
-    };
-    CFunc(string name_in, double(*f_in)(double, double, double)) {
-        // cout << "DEBUG create CFunc(3) ["<<name_in<<"]\n";
-        s = name_in;
-        narg = 3;
-        f3 = f_in;
-    };
-    CFunc(string name_in, double(*f_in)(double, vector<double>)) {
-        // cout << "DEBUG create CFunc(2) ["<<name_in<<"]\n";
-        s = name_in;
-        narg = 2;
-        f2tv = f_in;
-    };
+    CFunc( string _s, func_f1 _f1 )
+        : s(_s), f1(_f1), narg(1) {};
+    CFunc( string _s, func_f2 _f2 )
+        : s(_s), f2(_f2), narg(2) {};
+    CFunc( string _s, func_f3 _f3 )
+        : s(_s), f3(_f3), narg(3) {};
+    CFunc( string _s, func_f2tv _f2tv )
+        : s(_s), f2tv(_f2tv), narg(2) {};
 };
 
 namespace NFunctions { // public (short) interface