diff --git a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
index 006fe70eea2ac40fb3cd3df3cfa331d575ff28e0..5d265916141040be5f4a11730c1f9f4e9764ceb7 100755
--- a/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
+++ b/bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
@@ -141,7 +141,7 @@ class ApiController {
           break;
         }
       }
-      // let processCreateParams() and createMeeting() handle invalid telVoice
+      // Still no unique voiceBridge found? Let createMeeting handle it.
     }
 
     Meeting newMeeting = paramsProcessorUtil.processCreateParams(params)
@@ -175,6 +175,14 @@ class ApiController {
         }
 
         return
+      } else {
+        Meeting existingTelVoice = meetingService.getNotEndedMeetingWithTelVoice(newMeeting.getTelVoice());
+        Meeting existingWebVoice = meetingService.getNotEndedMeetingWithWebVoice(newMeeting.getWebVoice());
+        if (existingTelVoice != null || existingWebVoice != null) {
+          log.error "VoiceBridge already in use by another meeting (different meetingId)"
+          errors.nonUniqueMeetingIdError()
+          respondWithErrors(errors)
+        }
       }
     }
   }