Cohorts of six patients each receive escalating doses of oral hypericin daily. Blood is sampled for peak and trough levels the second week of therapy. A computer modeling algorithm will use these levels to determine the appropriate dose needed for each patient to achieve the desired trough level. When three of six patients at a given dose have completed 3 weeks of therapy without evidence of dose-limiting toxicity, data will be reviewed to determine whether subsequent patients should be entered at the next higher dose. The MTD is defined as the dose level immediately below that at which grade 3 or worse toxicity is seen in three or more of six patients.