diff --git a/CommonLibs/LinkedLists.cpp b/CommonLibs/LinkedLists.cpp
new file mode 100644
index 0000000..ba0f0cc
--- /dev/null
+++ b/CommonLibs/LinkedLists.cpp
@@ -0,0 +1,77 @@
+/*
+* Copyright 2008 Free Software Foundation, Inc.
+*
+*
+* This software is distributed under the terms of the GNU Affero Public License.
+* See the COPYING file in the main directory for details.
+*
+* This use of this software may be subject to additional restrictions.
+* See the LEGAL file in the main directory for details.
+
+	This program is free software: you can redistribute it and/or modify
+	it under the terms of the GNU Affero General Public License as published by
+	the Free Software Foundation, either version 3 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU Affero General Public License for more details.
+
+	You should have received a copy of the GNU Affero General Public License
+	along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+
+
+#include "LinkedLists.h"
+
+
+
+
+void PointerFIFO::put(void* val)
+{
+	ListNode *node = allocate();
+	node->data(val);
+	node->next(NULL);
+	if (mTail!=NULL) mTail->next(node);
+	mTail=node;
+	if (mHead==NULL) mHead=node;
+	mSize++;
+}
+
+/** Take an item from the FIFO. */
+void* PointerFIFO::get()
+{
+	// empty list?
+	if (mHead==NULL) return NULL;
+	// normal case
+	ListNode* next = mHead->next();
+	void* retVal = mHead->data();
+	release(mHead);
+	mHead = next;
+	if (next==NULL) mTail=NULL;
+	mSize--;
+	return retVal;
+}
+
+
+
+ListNode *PointerFIFO::allocate()
+{
+	if (mFreeList==NULL) return new ListNode;
+	ListNode* retVal = mFreeList;
+	mFreeList = mFreeList->next();
+	return retVal;
+}
+
+void PointerFIFO::release(ListNode* wNode)
+{
+	wNode->next(mFreeList);
+	mFreeList = wNode;
+}
+
+
+
