diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index f76113e080472f639dee38c1817e2827767b0d26..652cb395129d78ad692e5a0581c99d91ee6b6fe6 100644
--- a/channels/sig_pri.c
+++ b/channels/sig_pri.c
@@ -2890,29 +2890,27 @@ int sig_pri_answer(struct sig_pri_chan *p, struct ast_channel *ast)
 int sig_pri_available(struct sig_pri_chan *p, int channelmatch, ast_group_t groupmatch, int *reason, int *channelmatched, int *groupmatched)
 {
 	/* If no owner definitely available */
-	if (!p->owner) {
-		/* Trust PRI */
-		if (p->pri) {
+	if (!p->owner && p->pri) {
 #ifdef HAVE_PRI_SERVICE_MESSAGES
-			char db_chan_name[20], db_answer[5], state;
-			int why = 0;
+		char db_chan_name[20], db_answer[5], state;
+		int why = 0;
 
-			snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, p->pri->span, p->channel);
-			if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
-				sscanf(db_answer, "%1c:%30d", &state, &why);
+		snprintf(db_chan_name, sizeof(db_chan_name), "%s/%d:%d", dahdi_db, p->pri->span, p->channel);
+		if (!ast_db_get(db_chan_name, SRVST_DBKEY, db_answer, sizeof(db_answer))) {
+			sscanf(db_answer, "%1c:%30d", &state, &why);
+		}
+		if (p->resetting || p->call || why) {
+			if (why) {
+				*reason = AST_CAUSE_REQUESTED_CHAN_UNAVAIL;
 			}
-			if ((p->resetting || p->call) || (why)) {
-				if (why) {
-					*reason = AST_CAUSE_REQUESTED_CHAN_UNAVAIL;
-				}
+			return 0;
+		}
 #else
-			if (p->resetting || p->call) {
-#endif
-				return 0;
-			} else {
-				return 1;
-			}
+		if (p->resetting || p->call) {
+			return 0;
 		}
+#endif
+		return 1;
 	}
 
 	return 0;