diff --git a/hdhomerun_dev.c b/hdhomerun_dev.c
index 79356c5..fa4366a 100644
--- a/hdhomerun_dev.c
+++ b/hdhomerun_dev.c
@@ -105,6 +105,8 @@
     }
 
     // process line
+    printf("hdhr:parse:[%s]\n", line);
+
     p = strstr(line, "Model:");
     if (p) {
       if (get_string_by_name(p, "Model", ht->model, sizeof(ht->model), NULL)) {
diff --git a/hdhomerun_http.c b/hdhomerun_http.c
index a22c57e..88ba972 100644
--- a/hdhomerun_http.c
+++ b/hdhomerun_http.c
@@ -65,16 +65,18 @@
   ret = inet_pton(AF_INET, ip, (void *)(&(remote->sin_addr.s_addr)));
   if (ret < 0) {
     perror("Can't set remote->sin_addr.s_addr");
-    return -1;
+    goto exit_free_rem;
   } else if (ret == 0) {
     fprintf(stderr, "%s is not a valid IP address\n", ip);
-    return -1;
+    ret = -1;
+    goto exit_free_rem;
   }
   remote->sin_port = htons(PORT);
 
   if (connect(sock, (struct sockaddr *)remote, sizeof(struct sockaddr)) < 0) {
     perror("Could not connect");
-    return -1;
+    ret = -1;
+    goto exit_free_rem;
   }
   get = build_get_query(host, page);
 
@@ -84,7 +86,7 @@
     ret = send(sock, get + sent, strlen(get) - sent, 0);
     if (ret == -1) {
       perror("Can't send query");
-      break;
+      goto exit_free_get;
     }
     sent += ret;
   }
@@ -103,10 +105,13 @@
     if (used_bytes < 0)
       break;
   }
+
+exit_free_get:
   free(get);
+exit_free_rem:
   free(remote);
   close(sock);
-  return 1;
+  return (ret < 0) ? -1 : 1;
 }
 
 #ifdef HTTP_GET_APP
diff --git a/hdhomerun_tuner.c b/hdhomerun_tuner.c
index e04052b..d9ad830 100644
--- a/hdhomerun_tuner.c
+++ b/hdhomerun_tuner.c
@@ -355,6 +355,7 @@
   struct hdhomerun_discover_device_t device_info[max_ht_num];
   struct hdhr_tuner_t hdhr;
 
+  printf("hdhr:discovering devices...\n");
   while (1) {
     count = hdhomerun_discover_find_devices_custom(0,
                 HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD,
@@ -366,9 +367,15 @@
   }
 
   for (i = 0; i < count; i++) {
-    memset(&hdhr, 0, sizeof(hdhr));
-    ip4_address(device_info[i].ip_addr, hdhr.ip, sizeof(hdhr.ip));
-    get_dev_model_and_fw(&hdhr);
+    printf("hdhr:get device %d model and fw\n", i);
+    while (1) {
+      memset(&hdhr, 0, sizeof(hdhr));
+      ip4_address(device_info[i].ip_addr, hdhr.ip, sizeof(hdhr.ip));
+      if (get_dev_model_and_fw(&hdhr) > 0) {
+        break;
+      }
+      sleep(3);
+    }
 
     for (k = 0; k < device_info[i].tuner_count && num < max_ht_num; k++) {
       ht[num].tuner_id = num;
