Index: trunk/Mars/fact/processing/dust.C
===================================================================
--- trunk/Mars/fact/processing/dust.C	(revision 18524)
+++ trunk/Mars/fact/processing/dust.C	(revision 18525)
@@ -18,7 +18,36 @@
 
     TGraph g;
+    Double_t timeprev;
+    Float_t dustprev;
+    Int_t counter=1;
+    Int_t day=TMath::Nint((beg+end)/2);
     while (file.GetNextRow())
-        g.SetPoint(g.GetN(), time+offset, dust);
+    {
+        // handle doubl values
+        if (time==timeprev && dust==dustprev)
+            continue;
 
+        //exclude day
+        if (time+offset<day-0.25)
+            continue;
+        if (time+offset>day+0.35)
+            break;
+
+        //handle values where time gets stuck
+        if (time-timeprev<1/12.*counter)
+        {
+            g.SetPoint(g.GetN(), timeprev+1/12.*counter+offset, dust);
+            counter++;
+            continue;
+        }
+        else
+        {
+            g.SetPoint(g.GetN(), time+offset, dust);
+            counter=1;
+        }
+
+        timeprev=time;
+        dustprev=dust;
+    }
     cout << "result " << MSpline3(g).Eval((beg+end)/2) << endl;
 }
