diff --git a/dcf/creditcurve.py b/dcf/creditcurve.py
index <HASH>..<HASH> 100644
--- a/dcf/creditcurve.py
+++ b/dcf/creditcurve.py
@@ -17,9 +17,24 @@ from interpolation import constant, linear, loglinear, logconstant
 
 class CreditCurve(RateCurve):
     """ generic curve for default probabilities (under construction) """
-
     _forward_tenor = '1Y'
 
+    def cast(self, cast_type, **kwargs):
+        old_domain = kwargs.get('domain', self.domain)
+
+        if issubclass(cast_type, (SurvivalProbabilityCurve,)):
+            domain = kwargs.get('domain', self.domain)
+            origin = kwargs.get('origin', self.origin)
+            new_domain = list(domain) + [origin + '1d']
+            kwargs['domain'] = sorted(set(new_domain))
+
+        if issubclass(cast_type, (SurvivalProbabilityCurve,)):
+            domain = kwargs.get('domain', self.domain)
+            new_domain = list(domain) + [max(domain) + '1d']
+            kwargs['domain'] = sorted(set(new_domain))
+
+        return super(CreditCurve, self).cast(cast_type, **kwargs)
+
     def get_survival_prob(self, start, stop=None):  # aka get_discount_factor
         if stop is None:
             return self.get_survival_prob(self.origin, start)
adding credit curves + unit tests + cast