diff --git a/get_updates.py b/get_updates.py
index f280f6f..3f5a53f 100644
--- a/get_updates.py
+++ b/get_updates.py
@@ -23,6 +23,7 @@ optp.add_option("--code", action="append", dest="unlock_codes", metavar="UNLOCK_
 optp.add_option("--devicexml", dest="devicexml", metavar="FILE", help="Use specified GarminDevice.xml (also implies -E)")
 optp.add_option("--json", action="store_true", dest="json", default=False, help="Output JSON")
 optp.add_option("--list-devices", action="store_true", dest="list_devices", default=False, help="Show a list of SKUs and product names")
+optp.add_option("--debug", action="store_true", dest="debug", default=False, help="Dump raw server requests and replies to files")
 
 optp.usage = """
   %prog [options] SKU1 [SKU2..SKUn]
@@ -50,6 +51,9 @@ elif len(device_skus) < 1 and not opts.devicexml:
 
 us = updateserver.UpdateServer()
 
+if opts.debug:
+    us.debug = True
+
 if opts.devicexml:
     # Filename given, load GarminDevice.xml from there; also disable WebUpdater
     print("Using GarminDevice.xml from {}.".format(opts.devicexml))
diff --git a/grmn/updateserver.py b/grmn/updateserver.py
index 1efb58a..8fab560 100644
--- a/grmn/updateserver.py
+++ b/grmn/updateserver.py
@@ -63,7 +63,8 @@ class UpdateInfo:
         self.device_name = self.dom_get_text(dom.getElementsByTagName("Description"))
         version_major = self.dom_get_text(dom.getElementsByTagName("VersionMajor"))
         version_minor = self.dom_get_text(dom.getElementsByTagName("VersionMinor"))
-        self.fw_version = "{}.{:0>2s}".format(version_major, version_minor)
+        if len(version_minor) > 0:
+            self.fw_version = "{}.{:0>2s}".format(version_major, version_minor)
         self.license_url = self.dom_get_text(dom.getElementsByTagName("LicenseLocation"))
         self.changelog = self.dom_get_text(dom.getElementsByTagName("ChangeDescription"))
         self.notes = self.dom_get_text(dom.getElementsByTagName("Notes"))
@@ -107,11 +108,12 @@ class UpdateServer:
         device_xml = self.get_device_xml(sku_numbers)
         reply = self.get_unit_updates(device_xml)
         results = []
-        for i in range(0, len(reply.update_info)):
-            ui = reply.update_info[i]
-            r = UpdateInfo()
-            r.fill_from_protobuf(ui)
-            results.append(r)
+        if reply:
+            for i in range(0, len(reply.update_info)):
+                ui = reply.update_info[i]
+                r = UpdateInfo()
+                r.fill_from_protobuf(ui)
+                results.append(r)
         return results
 
     def query_webupdater(self, sku_numbers):
@@ -125,6 +127,10 @@ class UpdateServer:
 
         results = []
         for resp in dom.getElementsByTagName("Response"):
+            uf = resp.getElementsByTagName("UpdateFile")
+            if len(uf) == 0:
+                # Empty result
+                continue
             r = UpdateInfo()
             r.fill_from_response_dom(resp)
             results.append(r)