diff --git a/ale/isd_generate.py b/ale/isd_generate.py
index f991e2fb74ec0af5383620ab82839654551a3bfa..9e63273745e07758ad0f50e880dda06bfaa29e46 100755
--- a/ale/isd_generate.py
+++ b/ale/isd_generate.py
@@ -14,7 +14,8 @@ import argparse
 import concurrent.futures
 import logging
 import os
-from pathlib import Path
+import pvl
+from pathlib import Path, PurePath
 import sys
 
 import ale
@@ -81,7 +82,7 @@ def main():
     else:
         try:
             k = ale.util.generate_kernels_from_cube(args.kernel, expand=True)
-        except KeyError:
+        except (KeyError, pvl.exceptions.LexerError):
             k = [args.kernel, ]
 
     if len(args.input) == 1:
@@ -139,9 +140,10 @@ def file_to_isd(
 
     logger.info(f"Reading: {file}")
     if kernels is not None:
-        usgscsm_str = ale.loads(file, props={'kernels': kernels})
+        kernels = [str(PurePath(p)) for p in kernels]
+        usgscsm_str = ale.loads(file, props={'kernels': kernels}, verbose=log_level>=logging.INFO)
     else:
-        usgscsm_str = ale.loads(file)
+        usgscsm_str = ale.loads(file, verbose=log_level>=logging.INFO)
 
     logger.info(f"Writing: {isd_file}")
     isd_file.write_text(usgscsm_str)
diff --git a/tests/pytests/test_isd_generate.py b/tests/pytests/test_isd_generate.py
index 1be7691f7db97699ef09abdbac6aa4e9817dd9d3..fb1c8c4b065dea199b7871f948c453c1c4b00b10 100644
--- a/tests/pytests/test_isd_generate.py
+++ b/tests/pytests/test_isd_generate.py
@@ -28,7 +28,7 @@ class TestFile(unittest.TestCase):
             cube_str = "dummy.cub"
             isdg.file_to_isd(cube_str)
             self.assertEqual(
-                m_loads.call_args_list, [call(cube_str)]
+                m_loads.call_args_list, [call(cube_str, verbose=True)]
             )
             self.assertEqual(
                 m_path_wt.call_args_list, [call(json_text)]
@@ -37,11 +37,11 @@ class TestFile(unittest.TestCase):
         m_path_wt.reset_mock()
         with patch("ale.loads", return_value=json_text) as m_loads:
             out_str = "dummy.json"
-            kernel_val = "list of kernels"
+            kernel_val = ["list of kernels"]
             isdg.file_to_isd(cube_str, out=out_str, kernels=kernel_val)
             self.assertEqual(
                 m_loads.call_args_list,
-                [call(cube_str, props={'kernels': kernel_val})]
+                [call(cube_str, props={'kernels': kernel_val}, verbose=True)]
             )
             self.assertEqual(
                 m_path_wt.call_args_list, [call(json_text)]