diff --git a/dartwrf/dart_nml.py b/dartwrf/dart_nml.py
index 85716b640511a9f48c2f04aa9d33de66e9830379..11dc4c14bc77c0fef7ef7a58ca3b07cf889923eb 100644
--- a/dartwrf/dart_nml.py
+++ b/dartwrf/dart_nml.py
@@ -200,7 +200,7 @@ def _get_list_of_localizations():
             # set the other (unused) list to a dummy value
             l_loc_vert_scaleheight = [-1,]
 
-        except AttributeError:  # localization by scale height
+        except KeyError:  # localization by scale height
             try:
                 loc_vert_scaleheight = obscfg["loc_vert_scaleheight"]
 
@@ -210,16 +210,16 @@ def _get_list_of_localizations():
                 # set the other (unused) list to a dummy value
                 l_loc_vert_km = [-1,]
 
-            except AttributeError:
+            except KeyError:
 
                 # do we have vertical localization?
                 # check parameter horiz_dist_only == true
-                if exp.dart_nml['&location_nml']['horiz_dist_only'][0] == '.true.':
+                if exp.dart_nml['&location_nml']['horiz_dist_only'] == '.true.':
                     # no vertical localization
                     l_loc_vert_km.append(-1)
                     l_loc_vert_scaleheight.append(-1)
                 else:
-                    raise ValueError('Neither `loc_vert_km` nor `loc_vert_scaleheight` defined in obscfg.')
+                    raise ValueError('DART namelist requires vertical localization, but neither `loc_vert_km` nor `loc_vert_scaleheight` are defined in obscfg.')
                 
     return l_obstypes, l_loc_horiz_rad, l_loc_vert_km, l_loc_vert_scaleheight
 
@@ -341,4 +341,4 @@ def write_namelist(just_prior_values=False):
     append_file(cluster.dart_rundir + "/input.nml", rttov_nml)
     # alternatively, we could do this in cfg.py or the template input.nml in DART's model/wrf/work folder
 
-    return nml  # in case we want to access namelist settings in python
\ No newline at end of file
+    return nml  # in case we want to access namelist settings in python