diff --git a/libril/ril.cpp b/libril/ril.cpp
index a044049..aa82e7f 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -89,6 +89,9 @@
 // request, response, and unsolicited msg print macro
 #define PRINTBUF_SIZE 8096
 
+// Enable verbose logging
+#define VDBG 0
+
 // Enable RILC log
 #define RILC_LOG 0
 
@@ -858,7 +861,9 @@
     int size;
     status_t status;
 
+#if VDBG
     RLOGD("dispatchSIM_IO");
+#endif
     memset (&simIO, 0, sizeof(simIO));
 
     // note we only check status at the end
@@ -936,7 +941,9 @@
     status_t status;
     RIL_SIM_APDU apdu;
 
+#if VDBG
     RLOGD("dispatchSIM_APDU");
+#endif
     memset (&apdu, 0, sizeof(RIL_SIM_APDU));
 
     // Note we only check status at the end. Any single failure leads to
@@ -2054,7 +2061,9 @@
             return -1;
         }
     }
+#if VDBG
     RLOGE("RIL Response bytes written:%d", writeOffset);
+#endif
     return 0;
 }
 
@@ -2065,7 +2074,9 @@
     uint32_t header;
     pthread_mutex_t * writeMutexHook = &s_writeMutex;
 
+#if VDBG
     RLOGE("Send Response to %s", rilSocketIdToString(socket_id));
+#endif
 
 #if (SIM_COUNT >= 2)
     if (socket_id == RIL_SOCKET_2) {
@@ -4477,7 +4488,9 @@
     }
 #endif
 #endif
+#if VDBG
     RLOGD("RequestComplete, %s", rilSocketIdToString(socket_id));
+#endif
 
     if (pRI->local > 0) {
         // Locally issued command...void only!
@@ -4759,7 +4772,9 @@
         break;
     }
 
+#if VDBG
     RLOGI("%s UNSOLICITED: %s length:%d", rilSocketIdToString(soc_id), requestToString(unsolResponse), p.dataSize());
+#endif
     ret = sendResponse(p, soc_id);
     if (ret != 0 && unsolResponse == RIL_UNSOL_NITZ_TIME_RECEIVED) {
 
