diff --git a/src/mem/qos/QoSPolicy.py b/src/mem/qos/QoSPolicy.py
index 6db04ac..be18cd6 100644
--- a/src/mem/qos/QoSPolicy.py
+++ b/src/mem/qos/QoSPolicy.py
@@ -35,6 +35,8 @@
 #
 # Authors: Giacomo Travaglini
 
+from six import string_types
+
 from m5.SimObject import *
 from m5.params import *
 
@@ -71,7 +73,7 @@
             for mprio in self._mpriorities:
                 master = mprio[0]
                 priority = mprio[1]
-                if isinstance(master, basestring):
+                if isinstance(master, string_types):
                     self.getCCObject().initMasterName(
                         master, int(priority))
                 else:
@@ -108,7 +110,7 @@
             for mprio in self._mscores:
                 master = mprio[0]
                 score = mprio[1]
-                if isinstance(master, basestring):
+                if isinstance(master, string_types):
                     self.getCCObject().initMasterName(
                         master, float(score))
                 else:
diff --git a/src/mem/slicc/util.py b/src/mem/slicc/util.py
index 3a0cf5f..dcb780d 100644
--- a/src/mem/slicc/util.py
+++ b/src/mem/slicc/util.py
@@ -25,6 +25,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 from __future__ import print_function
+from six import string_types
 
 import os
 import sys
@@ -49,7 +50,7 @@
 
 class Location(object):
     def __init__(self, filename, lineno, no_warning=False):
-        if not isinstance(filename, basestring):
+        if not isinstance(filename, string_types):
             raise AttributeError, \
                 "filename must be a string, found '%s'" % (type(filename), )
         if not isinstance(lineno, (int, long)):
diff --git a/src/python/m5/util/grammar.py b/src/python/m5/util/grammar.py
index 2d9e82c..caf8a2e 100644
--- a/src/python/m5/util/grammar.py
+++ b/src/python/m5/util/grammar.py
@@ -25,6 +25,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import os
+from six import string_types
 
 import ply.lex
 import ply.yacc
@@ -93,7 +94,7 @@
             "'%s' object has no attribute '%s'" % (type(self), attr))
 
     def parse_string(self, data, source='<string>', debug=None, tracking=0):
-        if not isinstance(data, basestring):
+        if not isinstance(data, string_types):
             raise AttributeError(
                 "argument must be a string, was '%s'" % type(f))
 
@@ -113,7 +114,7 @@
         return result
 
     def parse_file(self, f, **kwargs):
-        if isinstance(f, basestring):
+        if isinstance(f, string_types):
             source = f
             f = open(f, 'r')
         elif isinstance(f, file):
