diff --git a/MemoryFree.cpp b/MemoryFree.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3e9eab90ca8e756fa743ea4769c02e682e2fa70a
--- /dev/null
+++ b/MemoryFree.cpp
@@ -0,0 +1,44 @@
+ #if (ARDUINO >= 100)
+#include <Arduino.h>
+#else
+#include <WProgram.h>
+#endif
+
+extern unsigned int __heap_start;
+extern void *__brkval;
+
+/*
+ * The free list structure as maintained by the 
+ * avr-libc memory allocation routines.
+ */
+struct __freelist {
+  size_t sz;
+  struct __freelist *nx;
+};
+
+/* The head of the free list structure */
+extern struct __freelist *__flp;
+
+#include "MemoryFree.h"
+
+/* Calculates the size of the free list */
+int freeListSize() {
+  struct __freelist* current;
+  int total = 0;
+  for (current = __flp; current; current = current->nx) {
+    total += 2; /* Add two bytes for the memory block's header  */
+    total += (int) current->sz;
+  }
+  return total;
+}
+
+int freeMemory() {
+  int free_memory;
+  if ((int)__brkval == 0) {
+    free_memory = ((int)&free_memory) - ((int)&__heap_start);
+  } else {
+    free_memory = ((int)&free_memory) - ((int)__brkval);
+    free_memory += freeListSize();
+  }
+  return free_memory;
+}
\ No newline at end of file
diff --git a/MemoryFree.h b/MemoryFree.h
new file mode 100644
index 0000000000000000000000000000000000000000..3a7f2d5848ff24caf1596350fdf513ca7fb3fb00
--- /dev/null
+++ b/MemoryFree.h
@@ -0,0 +1,18 @@
+ // MemoryFree library based on code posted here:
+// http://forum.arduino.cc/index.php?topic=27536.msg204024#msg204024
+// Extended by Matthew Murdoch to include walking of the free list.
+
+#ifndef	MEMORY_FREE_H
+#define MEMORY_FREE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int freeMemory();
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/NodeManager.h b/NodeManager.h
index 321702b041f26d0183e1f3bb5caaa54123fcfe01..0377571c5acb4490c8bb2c4c12bfa79bcd6570f9 100644
--- a/NodeManager.h
+++ b/NodeManager.h
@@ -12,6 +12,8 @@
 
 void printFM();
 
+void printFM();
+
 /***********************************
    Constants
 */