<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -4,6 +4,7 @@ name            'IWL';
 all_from        'lib/IWL.pm';
 license         'perl';
 
+requires        'Locale::Messages';
 requires        'Locale::TextDomain' =&gt; 1.10;
 requires        'File::ShareDir' =&gt; 0.05;
 requires        'HTML::Parser' =&gt; 2.25;</diff>
      <filename>Makefile.PL</filename>
    </modified>
    <modified>
      <diff>@@ -1750,11 +1750,17 @@ sub __addRequired {
 
     $top-&gt;{___lastShared} = $scripts[-1];
 
-    $script &amp;&amp; $script-&gt;{parentNode}
-        ? $script-&gt;{parentNode}-&gt;insertBefore($script, @scripts)
-        : $pivot &amp;&amp; $pivot-&gt;{parentNode}
-            ? $pivot-&gt;{parentNode}-&gt;insertAfter($pivot, @scripts)
-            : ($body || $self)-&gt;appendChild(@scripts);
+    if ($script &amp;&amp; $script-&gt;{parentNode}) {
+        $script-&gt;{parentNode}-&gt;insertBefore($script, @scripts);
+    } elsif ($pivot &amp;&amp; $pivot-&gt;{parentNode}) {
+        if ($self != $top) {
+            my $last = $pivot-&gt;next({package =&gt; 'IWL::Script'}, {attribute =&gt; ['iwl:requiredScript']});
+            $pivot = $last if $last;
+        }
+        $pivot-&gt;{parentNode}-&gt;insertAfter($pivot, @scripts);
+    } else {
+        ($body || $self)-&gt;appendChild(@scripts);
+    }
 
     if (ref $required{css} eq 'ARRAY') {
         if ($head) {</diff>
      <filename>lib/IWL/Object.pm</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-use Test::More tests =&gt; 126;
+use Test::More tests =&gt; 128;
 
 use IWL::Object;
 use IWL::Config '%IWLConfig';
@@ -155,8 +155,10 @@ my $output;
     $o2 = IWL::Test::Object2-&gt;new;
     $o-&gt;appendChild($o2);
     $data = $o-&gt;getObject;
-    is($data-&gt;{children}[0]{children}[0]{children}[0]{text}, qq(\@import &quot;/my/skin/darkness/foo.css&quot;;\n));
-    is($data-&gt;{children}[1]{attributes}{src}, '/jscript/foo.js');
+    is($data-&gt;{children}[0]{children}[0]{text}, qq(\@import &quot;/my/skin/darkness/foo.css&quot;;\n));
+    is($data-&gt;{children}[1]{children}[0]{children}[0]{text}, qq(\@import &quot;/my/skin/darkness/bar.css&quot;;\n));
+    is($data-&gt;{children}[2]{attributes}{src}, '/jscript/foo.js');
+    is($data-&gt;{children}[3]{attributes}{src}, '/jscript/bar.js');
 }
 
 {
@@ -268,8 +270,15 @@ package IWL::Test::Object2;
 
 use base 'IWL::Object';
 
+sub new {
+    my $self = shift-&gt;SUPER::new;
+
+    $self-&gt;require(js =&gt; 'foo.js', css =&gt; 'foo.css');
+    return $self;
+}
+
 sub _realize {
     my $self = shift;
-    $self-&gt;require(js =&gt; 'foo.js', css =&gt; 'foo.css');
+    $self-&gt;require(js =&gt; 'bar.js', css =&gt; 'bar.css');
     $self-&gt;SUPER::_realize;
 }</diff>
      <filename>t/10object.t</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4e29e6a02d900fdcc2240e2cc77fae7b529d491d</id>
    </parent>
  </parents>
  <author>
    <name>urandom</name>
    <email>vkojouharov@gmail.com</email>
  </author>
  <url>http://github.com/urandom/iwl/commit/d4d5b4972002d577303a651ce2c3e62e0bef373c</url>
  <id>d4d5b4972002d577303a651ce2c3e62e0bef373c</id>
  <committed-date>2008-11-11T10:22:36-08:00</committed-date>
  <authored-date>2008-11-11T10:22:36-08:00</authored-date>
  <message>make sure the required scripts inside the child's realize method are placed in the correct order</message>
  <tree>98eb05cc81f9ee1be837dfb6ed51b13dc61467b3</tree>
  <committer>
    <name>urandom</name>
    <email>vkojouharov@gmail.com</email>
  </committer>
</commit>
