 
     isPausingRuleset: (node) ->
       if not node?.actions
-        return node.ruleset_type in ['wait_ussd', 'wait_message', 'wait_recording', 'wait_digit', 'wait_digits']
+        return node.ruleset_type in ['wait_message', 'wait_recording', 'wait_digit', 'wait_digits']
+      return false
+
+    isUssdRuleset: (node) ->
+      if not node?.actions
+        return node.ruleset_type in ['wait_menu', 'wait_ussd']
       return false
 
     # check if a potential connection would result in an invalid loop

      # add ourselves
      path = path.slice()
      path.push(targetId)

      # if we have rules, check each one
      if node?.rules


      # break out if our target is a pausing ruleset
      node = @getNode(targetId)
      if node and (@isPausingRuleset(node) or @isUssdRuleset(node))
        return false

      # check if we just ate our tail
