<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -262,9 +262,9 @@ Resolver::add_target_with_reason(const PackageDepSpec &amp; spec, const std::tr1::sh
 
     _imp-&gt;env-&gt;trigger_notifier_callback(NotifierCallbackResolverStepEvent());
 
-    const std::tr1::shared_ptr&lt;const QPN_S_Sequence&gt; qpn_s_s(_get_qpn_s_s_for(spec, reason));
+    std::tr1::shared_ptr&lt;const QPN_S_Sequence&gt; qpn_s_s(_get_qpn_s_s_for(spec, reason));
     if (qpn_s_s-&gt;empty())
-        throw InternalError(PALUDIS_HERE, &quot;not implemented: no slot for &quot; + stringify(spec));
+        qpn_s_s = _get_error_qpn_s_s_for(spec, reason);
 
     for (QPN_S_Sequence::ConstIterator qpn_s(qpn_s_s-&gt;begin()), qpn_s_end(qpn_s_s-&gt;end()) ;
             qpn_s != qpn_s_end ; ++qpn_s)
@@ -570,14 +570,15 @@ Resolver::_add_dependencies(const QPN_S &amp; our_qpn_s, const std::tr1::shared_ptr&lt;
         else
             qpn_s_s = _get_qpn_s_s_for_blocker(*s-&gt;spec().if_block());
 
-        if (qpn_s_s-&gt;empty() &amp;&amp; s-&gt;spec().if_package())
+        if (qpn_s_s-&gt;empty())
         {
-            if (our_resolution-&gt;decision()-&gt;is_installed())
-                Log::get_instance()-&gt;message(&quot;resolver.cannot_find_installed_dep&quot;, ll_warning, lc_context)
-                    &lt;&lt; &quot;Installed package '&quot; &lt;&lt; *our_resolution-&gt;decision()-&gt;if_package_id()
-                    &lt;&lt; &quot;' dependency '&quot; &lt;&lt; s-&gt;spec() &lt;&lt; &quot;' cannot be met&quot;;
+            if (s-&gt;spec().if_package())
+                qpn_s_s = _get_error_qpn_s_s_for(*s-&gt;spec().if_package(), reason);
             else
-                throw InternalError(PALUDIS_HERE, &quot;not implemented: no slot for &quot; + stringify(s-&gt;spec()));
+            {
+                /* blocking on something that doesn't exist is fine */
+                qpn_s_s.reset(new QPN_S_Sequence);
+            }
         }
 
         for (QPN_S_Sequence::ConstIterator qpn_s(qpn_s_s-&gt;begin()), qpn_s_end(qpn_s_s-&gt;end()) ;
@@ -1130,6 +1131,18 @@ Resolver::_get_qpn_s_s_for(
         return _imp-&gt;fns.get_qpn_s_s_for_fn()(spec, reason);
 }
 
+const std::tr1::shared_ptr&lt;QPN_S_Sequence&gt;
+Resolver::_get_error_qpn_s_s_for(
+        const PackageDepSpec &amp; spec,
+        const std::tr1::shared_ptr&lt;const Reason&gt; &amp;) const
+{
+    Context context(&quot;When finding slots for '&quot; + stringify(spec) + &quot;', which can't be found the normal way:&quot;);
+
+    std::tr1::shared_ptr&lt;QPN_S_Sequence&gt; result(new QPN_S_Sequence);
+    result-&gt;push_back(QPN_S(spec, make_null_shared_ptr()));
+    return result;
+}
+
 const std::tr1::shared_ptr&lt;Decision&gt;
 Resolver::_try_to_find_decision_for(
         const QPN_S &amp; qpn_s,</diff>
      <filename>paludis/resolver/resolver.cc</filename>
    </modified>
    <modified>
      <diff>@@ -60,6 +60,10 @@ namespace paludis
                             const PackageDepSpec &amp; spec,
                             const std::tr1::shared_ptr&lt;const Reason&gt; &amp; reason) const;
 
+                const std::tr1::shared_ptr&lt;QPN_S_Sequence&gt; _get_error_qpn_s_s_for(
+                            const PackageDepSpec &amp; spec,
+                            const std::tr1::shared_ptr&lt;const Reason&gt; &amp; reason) const;
+
                 const std::tr1::shared_ptr&lt;Constraint&gt; _make_constraint_from_target(
                         const QPN_S &amp;,
                         const PackageDepSpec &amp;,</diff>
      <filename>paludis/resolver/resolver.hh</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>80636f271383ea34d5a3326af2472173958f8ed5</id>
    </parent>
  </parents>
  <author>
    <name>Ciaran McCreesh</name>
    <email>ciaran.mccreesh@googlemail.com</email>
  </author>
  <url>http://github.com/ciaranm/paludis-ciaranm/commit/5aee8457e0ecc73e5c7f3b643f815b5237a6d972</url>
  <id>5aee8457e0ecc73e5c7f3b643f815b5237a6d972</id>
  <committed-date>2009-09-07T14:11:55-07:00</committed-date>
  <authored-date>2009-09-07T14:11:55-07:00</authored-date>
  <message>change how we handle no qpn:s available</message>
  <tree>8e7e647bda618d815876e5cd4c6bbb89bbaa4e54</tree>
  <committer>
    <name>Ciaran McCreesh</name>
    <email>ciaran.mccreesh@googlemail.com</email>
  </committer>
</commit>
