Index: tests/SystemQueue-tests.cc
===================================================================
--- tests/SystemQueue-tests.cc	(revision 12763)
+++ tests/SystemQueue-tests.cc	(revision 12764)
@@ -99,7 +99,6 @@
     void Cancel()
     {
-        cout << "### Cancel ### "<< endl;
-
-        SystemQueue::instance().cancel();
+        ASSERT_THROW(SystemQueue::instance().cancel(), std::logic_error);
+        
         checkmark = true;
     }
@@ -194,4 +193,8 @@
 /**
  *  cancels the SystemQueue from inside a scheduled event
+ * 
+ *  --> and expects that this throws an exception
+ * 
+ *  NOTE: due to the SystemQueue singleton design, explicit cleanup is necessary!
  */
 TEST_F(SystemQueueTest, CancelFromInsideEvent)
@@ -211,6 +214,9 @@
     wait_for_checkmark(MAX_WAIT);
 
-    EXPECT_FALSE( sysq.isRunning() ) << "SystemQueue has not stopped properly.";
-    EXPECT_TRUE( sysq.isEmpty() ) << "SystemQueue has not stopped properly.";
+    // CLEANUP
+    sysq.cancel();
+    
+    EXPECT_FALSE( sysq.isRunning() );
+    EXPECT_TRUE( sysq.isEmpty() );
 }
 
@@ -343,5 +349,6 @@
  */
 #define DELAY_TIME 20  // ms
-#define DELAY_MARGIN 2000  // microseconds (1/1000 ms)   // TODO maybe this is too much..
+#define DELAY_MARGIN 1000  // microseconds (1/1000 ms)   // NOTE: maybe a meaningful value depends
+                                                         // on the target hardwarde and system load...
 
 
@@ -406,5 +413,5 @@
 
     // noting to do until the delay is up..
-    usleep(DELAY_TIME*1000 + DELAY_MARGIN*10);  // XXX margin too high (TODO lower when SysQ is reimplemented)
+    usleep(DELAY_TIME*1000 + DELAY_MARGIN*10);
     
     // wait for the event to happen
@@ -475,5 +482,5 @@
 
     // noting to do until the delay is up..
-    usleep(DELAY_TIME * 4000 + DELAY_MARGIN*100);  // XXX margin too high
+    usleep(DELAY_TIME * 4000 + DELAY_MARGIN*10);
     
     // wait for the event to happen
@@ -544,5 +551,5 @@
  * TODO
  * 
- * maybe one more complicated testcall with timing and directly scheduled events
+ * maybe one more complicated testcase with timing and directly scheduled events
  * 
  * but this probably only makes sense after a working SysQ implementation exists..
