diff --git a/bin/obmc_ser_num b/bin/obmc_ser_num
index bbf43ec..4269e42 100755
--- a/bin/obmc_ser_num
+++ b/bin/obmc_ser_num
@@ -122,7 +122,7 @@
                         verify=False)
     if resp.json()['status'] != 'ok':
         json = resp.json()
-        print_error_report("http request failed:\n" + sprint_var(command, 1))
+        print_error_report("http request failed:\n" + sprint_var(command))
         raise Exception("Login failed.\n")
 
     command = http_prefix + "xyz/openbmc_project/inventory/system"
@@ -130,7 +130,7 @@
     resp = session.get(command, verify=False)
     json = resp.json()
     if json['status'] != 'ok':
-        print_error_report("http request failed:\n" + sprint_var(command, 1))
+        print_error_report("http request failed:\n" + sprint_var(command))
         raise Exception("http request failed.\n")
 
     try:
@@ -139,7 +139,7 @@
         print_error_report("Failed to find 'SerialNumber' key in the" +
                            " following data:\n" + sprint_var(json))
         return False
-    pvar(mch_ser_num, 0, 0, 0)
+    print_var(mch_ser_num, 0, 0, 0)
 
     return True
 
diff --git a/bin/validate_plug_ins.py b/bin/validate_plug_ins.py
index ba4cebb..809f17a 100755
--- a/bin/validate_plug_ins.py
+++ b/bin/validate_plug_ins.py
@@ -120,7 +120,7 @@
 
     plug_in_packages_list = return_plug_in_packages_list(plug_in_dir_paths,
                                                          mch_class)
-    qpvar(plug_in_packages_list)
+    qprint_var(plug_in_packages_list)
 
     # As stated in the help text, this program must print the full paths of
     # each selected plug in.
diff --git a/lib/gen_plug_in_utils.py b/lib/gen_plug_in_utils.py
index c99d70d..7af5676 100755
--- a/lib/gen_plug_in_utils.py
+++ b/lib/gen_plug_in_utils.py
@@ -395,7 +395,8 @@
     if NICKNAME == "":
         NICKNAME = os.environ["AUTOIPL_FSP1_NICKNAME"]
     MASTER_PID = os.environ[PLUG_VAR_PREFIX + "_MASTER_PID"]
-    gp.pvars(BASE_TOOL_DIR_PATH, NICKNAME, plug_in_package_name, MASTER_PID)
+    gp.print_vars(BASE_TOOL_DIR_PATH, NICKNAME, plug_in_package_name,
+                  MASTER_PID)
     return BASE_TOOL_DIR_PATH + gm.username() + "/" + NICKNAME + "/" +\
         plug_in_package_name + "/" + str(MASTER_PID) + "/"
 
diff --git a/lib/var_funcs.py b/lib/var_funcs.py
index 4d85f82..0cf9bdd 100644
--- a/lib/var_funcs.py
+++ b/lib/var_funcs.py
@@ -78,7 +78,7 @@
 
     gp.print_var(var_dict)
     str1 = join_dict(var_dict)
-    gp.pvar(str1)
+    gp.print_var(str1)
 
     Program output.
     var_dict:
@@ -172,9 +172,9 @@
     file_path                       The file_path.
 
     Example use:
-    gp.pvar(boot_results_file_path)
+    gp.print_var(boot_results_file_path)
     file_path_data = parse_file_path(boot_results_file_path)
-    gp.pvar(file_path_data)
+    gp.print_var(file_path_data)
 
     Program output.
 
