diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index a9202f1ac4a7e2aa69f9b3a60ca9a18bb393cf78..a8e5c309a09f258f8816b78b390fd89699756dc0 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -8213,7 +8213,10 @@ static int load_config(int reload)
 			ast_copy_string(greetingfolder, imapfolder, sizeof(greetingfolder));
 		}
 
-		/* Handle the timeouts */
+		/* There is some very unorthodox casting done here. This is due
+		 * to the way c-client handles the argument passed in. It expects a 
+		 * void pointer and casts the pointer directly to a long without
+		 * first dereferencing it. */
 		if ((val = ast_variable_retrieve(cfg, "general", "imapreadtimeout"))) {
 			mail_parameters(NIL, SET_READTIMEOUT, (void *) (atol(val)));
 		} else {