diff --git a/Data/Conduit/OpenPGP/Filter.hs b/Data/Conduit/OpenPGP/Filter.hs
--- a/Data/Conduit/OpenPGP/Filter.hs
+++ b/Data/Conduit/OpenPGP/Filter.hs
@@ -7,6 +7,8 @@
 
 module Data.Conduit.OpenPGP.Filter (
    conduitFilter
+ , conduitPktFilter
+ , conduitTKFilter
  , FilterPredicates(..)
  , Expr(..)
  , PKPPredicate(..)
@@ -22,6 +24,7 @@
  , OOp(..)
  , OValue(..)
  , UPredicate(..)
+ , UOp(..)
 ) where
 
 import Control.Error.Util (hush)
@@ -37,6 +40,7 @@
 import Codec.Encryption.OpenPGP.KeyInfo (pubkeySize)
 import Codec.Encryption.OpenPGP.Types
 
+{-# DEPRECATED conduitFilter "Use conduitPktFilter instead" #-}
 {-# DEPRECATED PKPPredicate, SPPredicate, OPredicate "Use UPredicate instead" #-}
 
 data FilterPredicates = FilterPredicates {
@@ -134,13 +138,22 @@
     deriving Enum
 
 conduitFilter :: Monad m => FilterPredicates -> Conduit Pkt m Pkt
-conduitFilter = CL.filter . superPredicate
+conduitFilter = conduitPktFilter
 
+conduitPktFilter :: Monad m => FilterPredicates -> Conduit Pkt m Pkt
+conduitPktFilter = CL.filter . superPredicate
+
 superPredicate :: FilterPredicates -> Pkt -> Bool
 superPredicate fp@FilterPredicates{..} (PublicKeyPkt pkp) = eval pkpEval _pubKeyPktPredicate pkp
 superPredicate fp@FilterPredicates{..} (SignaturePkt sp) = eval spEval _sigPktPredicate sp
 superPredicate fp@FilterPredicates{..} p = eval oEval _otherPredicate p
 superPredicate (UnifiedFilterPredicate ufp) p = eval uEval ufp p
+
+conduitTKFilter :: Monad m => FilterPredicates -> Conduit TK m TK
+conduitTKFilter = CL.filter . superTKPredicate
+
+superTKPredicate :: FilterPredicates -> TK -> Bool
+superTKPredicate (UnifiedFilterPredicate ufp) p = eval uEval ufp (PublicKeyPkt (fst (_tkKey p)))  -- FIXME: should operate on more than just the pkp
 
 pkpEval :: PKPPredicate -> PKPayload -> Bool
 pkpEval (PKPPredicate lhs o rhs) pkp = uncurry (opreduce o) (vreduce (lhs,pkp),rhs)
diff --git a/hOpenPGP.cabal b/hOpenPGP.cabal
--- a/hOpenPGP.cabal
+++ b/hOpenPGP.cabal
@@ -1,5 +1,5 @@
 Name:                hOpenPGP
-Version:             1.8
+Version:             1.9
 Synopsis:            native Haskell implementation of OpenPGP (RFC4880)
 Description:         native Haskell implementation of OpenPGP (RFC4880)
 Homepage:            http://floss.scru.org/hOpenPGP/
@@ -255,4 +255,4 @@
 source-repository this
   type:     git
   location: git://git.debian.org/users/clint/hOpenPGP.git
-  tag:      v1.8
+  tag:      v1.9
