diff --git a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt
index 82de997dc4..74a1de3149 100644
--- a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt
+++ b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt
@@ -237,6 +237,7 @@ interface MoveCommand : CommandData {
 data class CommandWithParties<out T : CommandData>(
         val signers: List<PublicKey>,
         /** If any public keys were recognised, the looked up institutions are available here */
+        @Deprecated("Should not be used in contract verification code as it is non-deterministic, will be disabled for some future target platform version onwards and will take effect only for CorDapps targeting those versions.")
         val signingParties: List<Party>,
         val value: T
 )
diff --git a/finance/contracts/src/main/kotlin/net/corda/finance/contracts/asset/Obligation.kt b/finance/contracts/src/main/kotlin/net/corda/finance/contracts/asset/Obligation.kt
index 38384d92d2..27265aa902 100644
--- a/finance/contracts/src/main/kotlin/net/corda/finance/contracts/asset/Obligation.kt
+++ b/finance/contracts/src/main/kotlin/net/corda/finance/contracts/asset/Obligation.kt
@@ -315,7 +315,7 @@ class Obligation<P : Any> : Contract {
         val outputAmount = outputs.sumObligations<P>()
         val issueCommands = tx.commands.select<Commands.Issue>()
         requireThat {
-            "output states are issued by a command signer" using (issuer.party in issueCommand.signingParties)
+            "output states are issued by a command signer" using (issuer.party.owningKey in issueCommand.signers)
             "output values sum to more than the inputs" using (outputAmount > inputAmount)
             "there is only a single issue command" using (issueCommands.count() == 1)
         }