diff --git a/bhmm/estimators/maximum_likelihood.py b/bhmm/estimators/maximum_likelihood.py
index <HASH>..<HASH> 100644
--- a/bhmm/estimators/maximum_likelihood.py
+++ b/bhmm/estimators/maximum_likelihood.py
@@ -278,6 +278,10 @@ class MaximumLikelihoodEstimator(object):
         C = np.zeros((self._nstates, self._nstates))
         for k in range(len(self._observations)):  # update count matrix
             C += count_matrices[k]
+
+        # trim counts below machine precision
+        C[C < 1e-16] = 0
+
         return C
 
     def _update_model(self, gammas, count_matrices, maxiter=10000000):
[estimators.MaximumLikelihoodEstimator] fix count matrix summation for numbers < 1e-<I>

Disconnected 2 state system could not detect disconnected T matrix
but instead returned implied timescales = inf and T matrix off diagonal
entries ~1e-<I>. Cf. <URL>