diff --git a/device_simulator/client.c.patch b/device_simulator/client.c.patch
index 7de4dd1..c77a281 100644
--- a/device_simulator/client.c.patch
+++ b/device_simulator/client.c.patch
@@ -35,3 +35,15 @@
   
       context = gc_client_prepare_ops(client, mdarray, 1, input, NULL, 
   				    client_streaming, server_streaming, NULL, 
+***************
+--- grpc-c_orig/lib/client.c    2017-09-19 21:08:29.506546198 +0530
++++ grpc-c/lib/client.c 2017-09-19 21:10:52.137702783 +0530
+@@ -967,7 +967,6 @@
+
+     if (*output == NULL) {
+        grpc_c_context_free(context);
+-       gpr_log(GPR_ERROR, "No output to return");
+        rc = GRPC_C_FAIL;
+        goto cleanup;
+     }
+
diff --git a/device_simulator/voltha_bal_driver.c b/device_simulator/voltha_bal_driver.c
index afdb73e..2d59e0e 100755
--- a/device_simulator/voltha_bal_driver.c
+++ b/device_simulator/voltha_bal_driver.c
@@ -51,7 +51,7 @@
 {
    BalHeartbeat *bal_hb;
    BalErr bal_err;
-
+   int ret_val;
    /*
     * Read incoming message into set_cfg
     */
@@ -69,11 +69,18 @@
    /*
     * Write reply back to the client
     */
-    if (!context->gcc_stream->write(context, &bal_err, 0)) {
-    } else {
-              printf("Failed to write\n");
-	      exit(1);
-    }
+   ret_val = context->gcc_stream->write(context, &bal_err, 0);
+   if (ret_val != GRPC_C_WRITE_OK) {
+      if(ret_val == GRPC_C_WRITE_PENDING) {
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
+      }
+      else {
+         printf("Failed to write %d \n", ret_val);
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
+      }
+   }
 
     grpc_c_status_t status;
     status.gcs_code = 0;
@@ -97,6 +104,8 @@
 {
    BalReboot *read_device;
    BalErr bal_err;
+   int ret_val;
+
    /*
     * Read incoming message into get_cfg
     */
@@ -122,10 +131,17 @@
    /*
     * Write reply back to the client
     */
-   if (!context->gcc_stream->write(context, &bal_err, 0)) {
-   } else {
-      printf("Bal Server - Reboot Failed to write\n");
-      exit(1);
+   ret_val = context->gcc_stream->write(context, &bal_err, 0);
+   if (ret_val != GRPC_C_WRITE_OK) {
+      if(ret_val == GRPC_C_WRITE_PENDING) {
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
+      }
+      else {
+         printf("Failed to write %d \n", ret_val);
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
+      }
    }
 
    grpc_c_status_t status;
@@ -146,6 +162,7 @@
 void bal__bal_cfg_stat_get_cb(grpc_c_context_t *context)
 {
     BalInterfaceKey *read_stats;
+    int ret_val;
 
     /*
     * Read incoming message into get_cfg
@@ -180,8 +197,18 @@
     if (!context->gcc_stream->write(context, &get_stats, 0)) {
 	   printf("Successfully Written Stats\n");
     } else {
-       printf("Stats Failed to write\n");
-	   exit(1);
+	    if (ret_val != GRPC_C_WRITE_OK) {
+		    if(ret_val == GRPC_C_WRITE_PENDING) {
+			    printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+			    sleep(5);
+		    }
+		    else {
+			    printf("Failed to write %d \n", ret_val);
+			    printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+			    sleep(5);
+		    }
+	    }
+
     }
 
     grpc_c_status_t status;
@@ -195,8 +222,8 @@
         exit(1);
     }
 
-    sleep(1);
     printf("============ Returning from Stats Function============\n");
+    sleep(1);
 }
 
 /*
@@ -249,13 +276,13 @@
    ret_val = context->gcc_stream->write(context, &bal_err, 0);
    if (ret_val != GRPC_C_WRITE_OK) {
       if(ret_val == GRPC_C_WRITE_PENDING) {
-         printf("write is pending, sleep for 10 sec %d \n", ret_val);
-         sleep(10);
+         printf("write(%d) is pending, sleep for 5 sec \n", ret_val);
+         sleep(5);
       }
       else {
          printf("Failed to write %d \n", ret_val);
-         printf("write is pending, sleep for 10 sec: %d\n", ret_val);
-         sleep(10);
+         printf("write(%d) is pending, sleep for 5 sec \n", ret_val);
+         sleep(5);
       }
    }
 
@@ -338,7 +365,7 @@
                 break;
              default:
                 {
-                   ("\n*****************************************************\n");
+                   printf("\n*****************************************************\n");
                    printf("Dest type invalid\n");
                    printf("*****************************************************\n");
                 }
@@ -348,7 +375,7 @@
        break;
     default:
        {
-          ("\n*****************************************************\n");
+          printf("\n*****************************************************\n");
           printf("Received Invalid msg type === %d \n", set_cfg->hdr->obj_type);
           printf("*****************************************************\n");
                     pthread_mutex_unlock(&lock);
@@ -431,7 +458,7 @@
     */
 
 
-   ("\n*****************************************************\n");
+   printf("\n*****************************************************\n");
    printf("Received API Init msg\n");
    printf("*****************************************************\n");
 
@@ -445,13 +472,13 @@
    ret_val = context->gcc_stream->write(context, &bal_err, 0);
    if (ret_val != GRPC_C_WRITE_OK) {
       if(ret_val == GRPC_C_WRITE_PENDING) {
-         printf("write is pending, sleep for 10 sec %d \n", ret_val);
-         sleep(10);
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
       }
       else {
          printf("Failed to write %d \n", ret_val);
-         printf("write is pending, sleep for 10 sec: %d\n", ret_val);
-         sleep(10);
+         printf("write(%d) is pending, sleep for 5 sec\n", ret_val);
+         sleep(5);
       }
    }
 
