diff --git a/lib/boot_data.py b/lib/boot_data.py
index 8dfdff0..070a0e6 100755
--- a/lib/boot_data.py
+++ b/lib/boot_data.py
@@ -74,7 +74,7 @@
 
     # For every boot_type we should have a corresponding mfg mode boot type.
     enhanced_boot_table = DotDict()
-    for key, value in boot_table.iteritems():
+    for key, value in boot_table.items():
         enhanced_boot_table[key] = value
         enhanced_boot_table[key + " (mfg)"] = value
 
diff --git a/lib/gen_cmd.py b/lib/gen_cmd.py
index 3b99fbc..d6ae199 100644
--- a/lib/gen_cmd.py
+++ b/lib/gen_cmd.py
@@ -96,21 +96,23 @@
     out_buf = ""
     if return_stderr:
         for line in sub_proc.stderr:
-            err_buf += line
+            try:
+                err_buf += line
+            except TypeError:
+                line = line.decode("utf-8")
+                err_buf += line
             if not print_output:
                 continue
-            if robot_env:
-                grp.rprint(line)
-            else:
-                sys.stdout.write(line)
+            gp.gp_print(line)
     for line in sub_proc.stdout:
-        out_buf += line
+        try:
+            out_buf += line
+        except TypeError:
+            line = line.decode("utf-8")
+            out_buf += line
         if not print_output:
             continue
-        if robot_env:
-            grp.rprint(line)
-        else:
-            sys.stdout.write(line)
+        gp.gp_print(line)
     if print_output and not robot_env:
         sys.stdout.flush()
     sub_proc.communicate()
@@ -417,12 +419,20 @@
         try:
             if return_stderr:
                 for line in sub_proc.stderr:
-                    err_buf += line
+                    try:
+                        err_buf += line
+                    except TypeError:
+                        line = line.decode("utf-8")
+                        err_buf += line
                     if not print_output:
                         continue
                     func_stdout += line
             for line in sub_proc.stdout:
-                out_buf += line
+                try:
+                    out_buf += line
+                except TypeError:
+                    line = line.decode("utf-8")
+                    out_buf += line
                 if not print_output:
                     continue
                 func_stdout += line
diff --git a/lib/gen_plug_in.py b/lib/gen_plug_in.py
index 1bd70a1..2cfd3e0 100755
--- a/lib/gen_plug_in.py
+++ b/lib/gen_plug_in.py
@@ -6,7 +6,11 @@
 
 import sys
 import os
-import commands
+try:
+    import commands
+except ImportError:
+    import subprocess
+
 import glob
 
 import gen_print as gp
diff --git a/lib/gen_robot_plug_in.py b/lib/gen_robot_plug_in.py
index 5c1dd06..cfcb660 100755
--- a/lib/gen_robot_plug_in.py
+++ b/lib/gen_robot_plug_in.py
@@ -8,7 +8,11 @@
 import sys
 import subprocess
 from robot.libraries.BuiltIn import BuiltIn
-import commands
+try:
+    import commands
+except ImportError:
+    import subprocess
+
 import os
 import tempfile
 
diff --git a/lib/gen_robot_utils.py b/lib/gen_robot_utils.py
index 281c27a..fd15eed 100644
--- a/lib/gen_robot_utils.py
+++ b/lib/gen_robot_utils.py
@@ -66,7 +66,7 @@
 
     # If any variable values were changed due to the prior import, set them
     # back to their original values.
-    for key, value in post_var_dict.iteritems():
+    for key, value in post_var_dict.items():
         if key in pre_var_dict:
             if value != pre_var_dict[key]:
                 global_var_name = re.sub("[@&]", "$", key)
diff --git a/lib/state.py b/lib/state.py
index 0aae066..78f4cf4 100755
--- a/lib/state.py
+++ b/lib/state.py
@@ -34,7 +34,11 @@
 import gen_cmd as gc
 import bmc_ssh_utils as bsu
 
-import commands
+try:
+    import commands
+except ImportError:
+    import subprocess
+
 from robot.libraries.BuiltIn import BuiltIn
 from robot.utils import DotDict
 
