diff --git a/lib/postzord/dispatcher.rb b/lib/postzord/dispatcher.rb
index 01649d87bc01d27067cd60b98e6f5ee23bce1739..f51c1acf99c16d06e1fafb9dbfc9004e624091f8 100644
--- a/lib/postzord/dispatcher.rb
+++ b/lib/postzord/dispatcher.rb
@@ -25,9 +25,9 @@ class Postzord::Dispatcher
   # @param object [Object]
   # @return [Boolean]
   def self.object_should_be_processed_as_public?(object)
-    if object.respond_to?(:public) && object.public?
+    if object.respond_to?(:public?) && object.public?
       true
-    elsif object.respond_to?(:relayable?) && object.parent.public?
+    elsif object.respond_to?(:relayable?) && object.parent.respond_to?(:public?) && object.parent.public?
       true
     else
       false