--- /dev/null
+Index: pkg_depends.c
+===================================================================
+RCS file: /cvs/familiar/dist/ipkg/C/pkg_depends.c,v
+retrieving revision 1.65
+diff -u -r1.65 pkg_depends.c
+--- C/pkg_depends.c    16 Sep 2005 20:03:48 -0000      1.65
++++ C/pkg_depends.c    17 Apr 2006 18:36:41 -0000
+@@ -106,6 +108,11 @@
+         satisfier_entry_pkg = NULL;
+ 
+         if (compound_depend->type == GREEDY_DEPEND) {
++             int old_sw = pkg->state_want;
++             /* Mark this package as to-be-installed temporarily,
++                since some of the dependent packages may in turn
++                depend on this one.  */
++             pkg->state_want = SW_INSTALL;
+              /* foreach possible satisfier */
+              for (j = 0; j < compound_depend->possibility_count; j++) {
+                   /* foreach provided_by, which includes the abstract_pkg itself */
+@@ -161,6 +171,7 @@
+                        }
+                   }
+              }
++             pkg->state_want = old_sw;
+ 
+              continue;
+         }