diff --git a/phydmslib/treelikelihood.py b/phydmslib/treelikelihood.py
index <HASH>..<HASH> 100644
--- a/phydmslib/treelikelihood.py
+++ b/phydmslib/treelikelihood.py
@@ -268,6 +268,7 @@ class TreeLikelihood:
                 bounds.append(self.model.PARAMLIMITS[param[0]])
             else:
                 raise ValueError("Invalid param type")
+        bounds = [(tup[0] + ALMOST_ZERO, tup[1] - ALMOST_ZERO) for tup in bounds]
         assert len(bounds) == len(self._index_to_param)
         return tuple(bounds)
 
@@ -359,7 +360,8 @@ class TreeLikelihood:
         if modelparams:
             self.model.updateParams(modelparams)
         if otherparams:
-            raise RuntimeError("cannot currently handle non-model params")
+            raise RuntimeError("Cannot handle non-model params: {0}".format(
+                    otherparams))
         if newvalues:
             self._updateInternals()
             self._paramsarray = None
Added margins on parameter bounds for optimization

The bounds on the L-BFGS optimizer seem to sometimes
get slightly exceeded. Now the lower bound is + ALMOST_ZERO
and the upper bound is - ALMOST_ZERO to avoid this problem.