diff --git a/build/makefile b/build/makefile
index ab14e950092fd8790626c5f6d7e7551f17d26920..46d5f5c938826c4c2c4ebaa6c19bf460130e6a4d 100644
--- a/build/makefile
+++ b/build/makefile
@@ -16,16 +16,16 @@
 
 
 # Production runs
-FLAGS_NOAH = -O3 -ffree-form -ffree-line-length-none -fmax-errors=0 -fPIC
-FLAGS_COMM = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC
-FLAGS_SUMMA = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC
-FLAGS_ACTORS = -O3
+# FLAGS_NOAH = -O3 -ffree-form -ffree-line-length-none -fmax-errors=0 -fPIC
+# FLAGS_COMM = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC
+# FLAGS_SUMMA = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC
+# FLAGS_ACTORS = -O3
 
 # # Debug runs
-# FLAGS_NOAH = -pg -g -O0 -ffree-form -ffree-line-length-none -fmax-errors=0 -fbacktrace -Wno-unused -Wno-unused-dummy-argument -fPIC
-# FLAGS_COMM = -pg -g -O0 -Wall -ffree-line-length-none -fmax-errors=0 -fbacktrace -fcheck=bounds -fPIC
-# FLAGS_SUMMA = -pg -g -O0 -Wall -ffree-line-length-none -fmax-errors=0 -fbacktrace -fcheck=bounds -fPIC
-# FLAGS_ACTORS = -pg -g -O0 -Wall
+FLAGS_NOAH = -pg -g -O0 -ffree-form -ffree-line-length-none -fmax-errors=0 -fbacktrace -Wno-unused -Wno-unused-dummy-argument -fPIC
+FLAGS_COMM = -pg -g -O0 -Wall -ffree-line-length-none -fmax-errors=0 -fbacktrace -fcheck=bounds -fPIC
+FLAGS_SUMMA = -pg -g -O0 -Wall -ffree-line-length-none -fmax-errors=0 -fbacktrace -fcheck=bounds -fPIC
+FLAGS_ACTORS = -pg -g -O0 -Wall
 
 
 #========================================================================
diff --git a/build/source/actors/OutputManager.h b/build/source/actors/OutputManager.h
index 901e7f571b610981a507699fcda7c761480610dc..af99740c540f2cb3c6aa5f3425b8cc3cec44968a 100644
--- a/build/source/actors/OutputManager.h
+++ b/build/source/actors/OutputManager.h
@@ -86,8 +86,8 @@ class OutputManager {
         void addActor(caf::actor actor, int index) {
             // Index has to be subtracted by 1 because Fortran array starts at 1
             int listIndex = (index - 1) / this->avgSizeOfActorList;
-            if (listIndex > this->numVectors - 1 || listIndex < 0) {
-                throw "List Index Out Of Range";
+            if (listIndex > this->numVectors - 1) {
+                listIndex =  this->numVectors - 1;
             }
 
             this->list[listIndex]->addActor(actor);
diff --git a/build/source/testing/testing_main.cc b/build/source/testing/testing_main.cc
index f054f02ab0133a7bfe118bcf294341431dd5d113..c935b0fd4543f071415db6c43ea44283ae81e4d9 100644
--- a/build/source/testing/testing_main.cc
+++ b/build/source/testing/testing_main.cc
@@ -157,6 +157,7 @@ void testOutputManager(caf::actor_system& sys) {
     auto a9 = sys.spawn(test_coordinator);
     auto a10 = sys.spawn(test_coordinator);
 
+    std::cout << "Creating Output Manager" << std::endl;
     auto OM = new OutputManager(5, 10);
 
     for (int i = 0; i < 5; i++) {
@@ -250,6 +251,112 @@ void testOutputManager(caf::actor_system& sys) {
     IS_TRUE(OM->getSize(3) == 2);
     IS_TRUE(OM->getSize(4) == 1);
 
+    OM->popActor(1);
+    OM->popActor(2);
+    OM->popActor(2);
+    OM->popActor(3);
+    OM->popActor(3);
+    OM->popActor(4);
+
+    IS_TRUE(OM->getSize(0) == 0);
+    IS_TRUE(OM->getSize(1) == 0);
+    IS_TRUE(OM->getSize(2) == 0);
+    IS_TRUE(OM->getSize(3) == 0);
+    IS_TRUE(OM->getSize(4) == 0);
+
+    delete OM;
+
+    std::cout << "Creating Output Manager 2 with 3 vectors" << std::endl;
+
+    auto OM2 = new OutputManager(3, 10);
+    try {
+        OM2->addActor(a1, 1);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 1);
+    IS_TRUE(OM2->getSize(1) == 0);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try { 
+        OM2->addActor(a2, 2);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 2);
+    IS_TRUE(OM2->getSize(1) == 0);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try {
+        OM2->addActor(a3, 3);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 0);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try {
+        OM2->addActor(a4, 4);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 1);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try {
+        OM2->addActor(a5, 5);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 2);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try {
+        OM2->addActor(a6, 6);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 3);
+    IS_TRUE(OM2->getSize(2) == 0);
+    try {
+        OM2->addActor(a7, 7);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 3);
+    IS_TRUE(OM2->getSize(2) == 1);
+    try {
+        OM2->addActor(a8, 8);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 3);
+    IS_TRUE(OM2->getSize(2) == 2);
+    try {
+        OM2->addActor(a9, 9);
+    } catch (const char* msg) {
+        std::cerr << msg << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 3);
+    IS_TRUE(OM2->getSize(2) == 3);
+    IS_TRUE(OM2->isFull(0));
+    IS_TRUE(OM2->isFull(1));
+    IS_TRUE(!OM2->isFull(2));
+    try {
+        OM2->addActor(a10, 10);
+    } catch (const char* msg) {
+        std::cerr << msg << 10 << std::endl;
+    }
+    IS_TRUE(OM2->getSize(0) == 3);
+    IS_TRUE(OM2->getSize(1) == 3);
+    IS_TRUE(OM2->getSize(2) == 4);
+    IS_TRUE(OM2->isFull(2));
+
+
+
+
 }