that sounds about right. here is a proposed patch:<div><br></div><div><span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "><pre style="color: rgb(0, 0, 0); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; ">
diff --git a/lib/Catalyst/Action/Serialize.pm b/lib/Catalyst/Action/Serialize.pm
index 29ee605..27f00a4 100644
--- a/lib/Catalyst/Action/Serialize.pm
+++ b/lib/Catalyst/Action/Serialize.pm
@@ -23,7 +23,7 @@ sub execute {
     $self-&gt;maybe::next::method(@_);

     return 1 if $c-&gt;req-&gt;method eq &#39;HEAD&#39;;
-    return 1 if length( $c-&gt;response-&gt;body );
+    return 1 if defined $c-&gt;response-&gt;body &amp;&amp; length( $c-&gt;response-&gt;body );
     return 1 if scalar @{ $c-&gt;error };
     return 1 if $c-&gt;response-&gt;status =~ /^(?:204)$/;

diff --git a/t/catalyst-action-serialize.t b/t/catalyst-action-serialize.t
index 78ce12b..43d793d 100644
--- a/t/catalyst-action-serialize.t
+++ b/t/catalyst-action-serialize.t
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests =&gt; 9;
+use Test::More tests =&gt; 11;
 use Data::Serializer;
 use FindBin;

@@ -35,4 +35,8 @@ $res2 = request($t-&gt;get(url =&gt; &#39;/serialize/test_second&#39;));
 ok( $res2-&gt;is_success, &#39;request succeeded (deprecated config)&#39; );
 is( $res2-&gt;content, &quot;{&#39;lou&#39; =&gt; &#39;is my cat&#39;}&quot;, &quot;request returned proper data&quot;);

+my $emptyres = request($t-&gt;get(url =&gt; &#39;/serialize/empty&#39;));
+is $emptyres-&gt;content, &#39;&#39;;
+ok !$emptyres-&gt;header(&#39;Content-Length&#39;);
+
 1;
diff --git a/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm b/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm
index 9d358c4..63cba8f 100644
--- a/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm
+++ b/t/lib/Test/Catalyst/Action/REST/Controller/Serialize.pm
@@ -32,4 +32,8 @@ sub test_second :Local :ActionClass(&#39;Serialize&#39;) {
     };
 }

+sub empty :Local :ActionClass(&#39;Serialize&#39;) {
+  return undef;
+}
+
 1;</pre><pre style="color: rgb(0, 0, 0); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; ">
<br></pre><pre style="color: rgb(0, 0, 0); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(240, 240, 240); background-position: initial initial; background-repeat: initial initial; ">
Justin</pre></span><br><div class="gmail_quote">On Thu, Jan 6, 2011 at 3:17 PM, Chad House <span dir="ltr">&lt;<a href="mailto:chadh@pobox.com">chadh@pobox.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Testing out Catalyst::Runtime 5.80030, I noticed<br>
Catalyst::Action::Serialize (0.87) complaining about &quot;Use of<br>
uninitialized value in length&quot; -- it&#39;s testing the length of<br>
$c-&gt;response-&gt;body, which can now be undefined I gather.<br>
<br>
Cheers,<br>
<br>
Chad<br>
<br>
_______________________________________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br>
</blockquote></div><br></div>