           dispatch_semaphore_signal(s)
         }
 
-      case COpaquePointer(cancelSelect):
+      case cancelSelect:
         // no need to try for the semaphore.
         break
 
       default:
-        let selectput = Unmanaged<dispatch_semaphore_t>.fromOpaque(context).takeRetainedValue()
-        if let s = semaphore.get()
-        {
-          let context = UnsafeMutablePointer<T>(dispatch_get_context(selectput))
-          let selection = Selection(selectionID: selectionID, selectionData: context.memory)
+        let selectput = Unmanaged<dispatch_semaphore_t>.fromOpaque(COpaquePointer(context)).takeRetainedValue()
+        if let s = semaphore.get()
+        {
+          let context = dispatch_get_context(selectput)
+          let element: T = UnsafePointer(context).memory
+          let selection = Selection(selectionID: selectionID, selectionData: element)
           dispatch_semaphore_signal(selectput)
 
           let selectptr = UnsafeMutablePointer<Void>(Unmanaged.passRetained(selection).toOpaque())

    { // there is already an interested reader
      OSSpinLockUnlock(&lock)

      let context = UnsafeMutablePointer<T>(dispatch_get_context(rs))
      switch context
      {
      case nil:

        {
          OSSpinLockUnlock(&self.lock)
          
          let context = dispatch_get_context(ws)
          switch context
          {
          case nil:
            preconditionFailure(__FUNCTION__)

          default:
            let element: T = UnsafePointer(context).memory
            dispatch_semaphore_signal(ws)

            let selection = Selection(selectionID: selectionID, selectionData: element)
