diff --git a/docs/examples/getinmemory.c b/docs/examples/getinmemory.c
index 5a66a04..2e34f17 100644
--- a/docs/examples/getinmemory.c
+++ b/docs/examples/getinmemory.c
@@ -8,8 +8,6 @@
  *
  * Example source code to show how the callback function can be used to
  * download data into a chunk of memory instead of storing it in a file.
- *
- * This exact source code has not been verified to work.
  */
 
 #include <stdio.h>
@@ -17,25 +15,12 @@
 #include <string.h>
 
 #include <curl/curl.h>
-#include <curl/types.h>
-#include <curl/easy.h>
 
 struct MemoryStruct {
   char *memory;
   size_t size;
 };
 
-static void *myrealloc(void *ptr, size_t size);
-
-static void *myrealloc(void *ptr, size_t size)
-{
-  /* There might be a realloc() out there that doesn't like reallocing
-     NULL pointers, so we take care of it here */
-  if(ptr)
-    return realloc(ptr, size);
-  else
-    return malloc(size);
-}
 
 static size_t
 WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
@@ -43,22 +28,28 @@ WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
   size_t realsize = size * nmemb;
   struct MemoryStruct *mem = (struct MemoryStruct *)data;
 
-  mem->memory = myrealloc(mem->memory, mem->size + realsize + 1);
-  if (mem->memory) {
-    memcpy(&(mem->memory[mem->size]), ptr, realsize);
-    mem->size += realsize;
-    mem->memory[mem->size] = 0;
+  mem->memory = realloc(mem->memory, mem->size + realsize + 1);
+  if (mem->memory == NULL) {
+    /* out of memory! */
+    printf("not enough memory (realloc returned NULL)\n");
+    exit(EXIT_FAILURE);
   }
+
+  memcpy(&(mem->memory[mem->size]), ptr, realsize);
+  mem->size += realsize;
+  mem->memory[mem->size] = 0;
+
   return realsize;
 }
 
+
 int main(int argc, char **argv)
 {
   CURL *curl_handle;
 
   struct MemoryStruct chunk;
 
-  chunk.memory=NULL; /* we expect realloc(NULL, size) to work */
+  chunk.memory = malloc(1);  /* will be grown as needed by the realloc above */
   chunk.size = 0;    /* no data at this point */
 
   curl_global_init(CURL_GLOBAL_ALL);
@@ -96,6 +87,8 @@ int main(int argc, char **argv)
    * you're done with it, you should free() it as a nice application.
    */
 
+  printf("%lu bytes retrieved\n", chunk.size);
+
   if(chunk.memory)
     free(chunk.memory);
 

