diff --git a/pyhsmm/basic/distributions.py b/pyhsmm/basic/distributions.py
index 940862e1465205b8b964cf8c8f7cf112c9cdcc18..b18ded31e809a018cdac2a373c2b031231ee64ec 100644
--- a/pyhsmm/basic/distributions.py
+++ b/pyhsmm/basic/distributions.py
@@ -1,6 +1,6 @@
 from __future__ import division
 import numpy as np
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 from pybasicbayes.distributions import *
 from pybasicbayes.models import MixtureDistribution
diff --git a/pyhsmm/internals/hmm_states.py b/pyhsmm/internals/hmm_states.py
index abbf50a4f3d8412258fc9a4a3873174d107e1919..c5dfb7fc345f460210d1370a7a1bfe3499c51341 100644
--- a/pyhsmm/internals/hmm_states.py
+++ b/pyhsmm/internals/hmm_states.py
@@ -5,7 +5,7 @@ import numpy as np
 from numpy import newaxis as na
 import abc
 import copy
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 from pyhsmm.util.stats import sample_discrete
 try:
diff --git a/pyhsmm/internals/hsmm_inb_states.py b/pyhsmm/internals/hsmm_inb_states.py
index e1c6ce2be3c5fab769dec4d6b75e7bfee124dc4b..25c4b855634be7884d74f9aee7197b8f2b95b87d 100644
--- a/pyhsmm/internals/hsmm_inb_states.py
+++ b/pyhsmm/internals/hsmm_inb_states.py
@@ -5,7 +5,7 @@ import numpy as np
 import abc
 import scipy.stats as stats
 import scipy.special as special
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 try:
     from ..util.cstats import sample_markov
diff --git a/pyhsmm/internals/hsmm_states.py b/pyhsmm/internals/hsmm_states.py
index a37303e191c9a760ee85891598906a663b8a50b4..b06b8316771ddc01f3ba94a6799b429e0105f1aa 100644
--- a/pyhsmm/internals/hsmm_states.py
+++ b/pyhsmm/internals/hsmm_states.py
@@ -2,7 +2,7 @@ from __future__ import division
 from builtins import range, map
 import numpy as np
 from numpy import newaxis as na
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 from pyhsmm.util.stats import sample_discrete
 from pyhsmm.util.general import rle, rcumsum, cumsum
diff --git a/pyhsmm/models.py b/pyhsmm/models.py
index 517e74ec19fd1717a5672fcff60bea8170983a4d..e3b1b9b41d78ab97e36bc7866cf25580d794667b 100644
--- a/pyhsmm/models.py
+++ b/pyhsmm/models.py
@@ -11,7 +11,7 @@ import matplotlib.pyplot as plt
 from matplotlib.gridspec import GridSpec, GridSpecFromSubplotSpec
 from matplotlib import cm
 from warnings import warn
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 from pyhsmm.basic.abstractions import Model, ModelGibbsSampling, \
     ModelEM, ModelMAPEM, ModelMeanField, ModelMeanFieldSVI, ModelParallelTempering
diff --git a/pyhsmm/parallel.py b/pyhsmm/parallel.py
index e430104230ab3b29e5bb79b30d94785c6895af0c..89de29cefb0dfa58cba33b6bc46044cf87f8743e 100644
--- a/pyhsmm/parallel.py
+++ b/pyhsmm/parallel.py
@@ -1,6 +1,6 @@
 from __future__ import division
 import numpy as np
-from scipy.misc import logsumexp
+from scipy.special import logsumexp
 
 # NOTE: pass arguments through global variables instead of arguments to exploit
 # the fact that they're read-only and multiprocessing/joblib uses fork