--- git/Modelica/Modelica/Math/package.mo	2018-06-11 14:42:38.302176220 +0200
+++ "build/Modelica/Math/package.mo"	2018-06-11 14:57:59.763978115 +0200
@@ -13219,9 +13219,67 @@
   annotation (Documentation(info="<html>
 
 </html>"),
-  obsolete = "Obsolete function");
+  obsolete = "Obsolete function",
+  derivative(zeroDerivative=table,zeroDerivative=icol)=tempInterpol1_der);
 end tempInterpol1;
 
+function tempInterpol1_der
+  "Temporary function for linear interpolation (will be removed)"
+  input Real u "input value (first column of table)";
+  input Real table[:, :] "table to be interpolated";
+  input Integer icol "column of table to be interpolated";
+  input Real du;
+  output Real dy "interpolated input value (icol column of table)";
+  protected
+  Integer i;
+  Integer n "number of rows of table";
+  Real u1;
+  Real u2;
+  Real y1;
+  Real y2;
+algorithm
+  n := size(table, 1);
+
+  if n <= 1 then
+    dy := 0;
+
+  else
+    // Search interval
+
+    if u <= table[1, 1] then
+      i := 1;
+
+    else
+      i := 2;
+      // Supports duplicate table[i, 1] values
+      // in the interior to allow discontinuities.
+      // Interior means that
+      // if table[i, 1] = table[i+1, 1] we require i>1 and i+1<n
+
+      while i < n and u >= table[i, 1] loop
+        i := i + 1;
+
+      end while;
+      i := i - 1;
+
+    end if;
+
+    // Get interpolation data
+    u1 := table[i, 1];
+    u2 := table[i + 1, 1];
+    y1 := table[i, icol];
+    y2 := table[i + 1, icol];
+
+    assert(u2 > u1, "Table index must be increasing");
+    // Interpolate
+    dy := (y2 - y1)/(u2 - u1);
+
+  end if;
+
+  annotation (Documentation(info="<html>
+
+</html>"));
+end tempInterpol1_der;
 
 function tempInterpol2
   "Temporary function for vectorized linear interpolation (will be removed)"
@@ -13282,9 +13340,72 @@
   annotation (Documentation(info="<html>
 
 </html>"),
-  obsolete = "Obsolete function");
+  obsolete = "Obsolete function",
+  derivative(zeroDerivative=table,zeroDerivative=icol)=tempInterpol2_der);
 end tempInterpol2;
 
+function tempInterpol2_der
+  "Temporary function for vectorized linear interpolation (will be removed)"
+  extends Modelica.Icons.Function;
+  extends Modelica.Icons.ObsoleteModel;
+
+  input Real u "input value (first column of table)";
+  input Real table[:, :] "table to be interpolated";
+  input Integer icol[:] "column(s) of table to be interpolated";
+  input Real du "input value (first column of table)";
+  output Real dy[1, size(icol, 1)]
+    "interpolated input value(s) (column(s) icol of table)";
+protected
+  Integer i;
+  Integer n "number of rows of table";
+  Real u1;
+  Real u2;
+  Real y1[1, size(icol, 1)];
+  Real y2[1, size(icol, 1)];
+algorithm
+  n := size(table, 1);
+
+  if n <= 1 then
+    dy := zeros(1, size(icol,1));
+
+  else
+    // Search interval
+
+    if u <= table[1, 1] then
+      i := 1;
+
+    else
+      i := 2;
+      // Supports duplicate table[i, 1] values
+      // in the interior to allow discontinuities.
+      // Interior means that
+      // if table[i, 1] = table[i+1, 1] we require i>1 and i+1<n
+
+      while i < n and u >= table[i, 1] loop
+        i := i + 1;
+
+      end while;
+      i := i - 1;
+
+    end if;
+
+    // Get interpolation data
+    u1 := table[i, 1];
+    u2 := table[i + 1, 1];
+    y1 := transpose([table[i, icol]]);
+    y2 := transpose([table[i + 1, icol]]);
+
+    assert(u2 > u1, "Table index must be increasing");
+    // Interpolate
+    dy := (y2 - y1)/(u2 - u1);
+
+  end if;
+
+  annotation (Documentation(info="<html>
+
+</html>")
+);
+end tempInterpol2_der;
 
 annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},
           {100,100}}), graphics={Line(points={{-80,0},{-68.7,34.2},{-61.5,53.1},
diff -u -x .svn -x .git -x Library -r git/Modelica/Modelica/Math/package.order "build/Modelica 3.2.3/Math/package.order"
--- git/Modelica/Modelica/Math/package.order	2015-05-06 23:05:25.499391283 +0200
+++ build/Modelica/Math/package.order	2015-05-06 23:05:39.655876463 +0200
@@ -24,4 +24,6 @@
 baseIcon1
 baseIcon2
 tempInterpol1
+tempInterpol1_der
 tempInterpol2
+tempInterpol2_der
