diff --git a/python/plumed.pyx b/python/plumed.pyx
index 39d929253084298c5dc3e3f08cc228076c1bf686..41873534a51006f1928a11c1d33bb4e08c2f7f40 100644
--- a/python/plumed.pyx
+++ b/python/plumed.pyx
@@ -30,6 +30,7 @@ cimport cplumed  # This imports information from pxd file - including contents o
 
 from cpython cimport array
 import array
+import sys
 
 try:
      import numpy as np
@@ -37,6 +38,12 @@ try:
 except ImportError:
      HAS_NUMPY=False
 
+if sys.version_info < (3,):
+     type_str=basestring
+else:
+     type_str=str
+
+
 cdef class Plumed:
      cdef cplumed.Plumed c_plumed
      def __cinit__(self,kernel=None):
@@ -117,7 +124,7 @@ cdef class Plumed:
                self.c_plumed.cmd( ckey, <void*> ar.data.as_voidptr)
             else :
                raise ValueError("ndarrays should be double (size=8) or int")
-         elif isinstance(val, basestring ) :
+         elif isinstance(val, type_str ) :
               py_bytes = val.encode()
               cval = py_bytes
               self.c_plumed.cmd( ckey, <void*>cval )