 
       default:
         // attach a new copy of our data to the reader's semaphore
-        context.initialize(newElement)
+        UnsafeMutablePointer<T>(context).initialize(newElement)
         dispatch_semaphore_signal(rs)
         return true
       }

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

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

        }
        return

      case cancelSelect:
        // no need to try for the semaphore.
        break

      default:
        let selectget = Unmanaged<dispatch_semaphore_t>.fromOpaque(COpaquePointer(context)).takeRetainedValue()
        if let s = semaphore.get()
        {
          let selection = Selection(selectionID: selectionID, selectionData: selectget)
