Index: trunk/FACT++/src/HeadersDrive.h
===================================================================
--- trunk/FACT++/src/HeadersDrive.h	(revision 18529)
+++ trunk/FACT++/src/HeadersDrive.h	(revision 18530)
@@ -24,5 +24,5 @@
             kPositioningFailed = /*StateMachineImp::kSM_Error*/0x100+1,
             kAllowedRangeExceeded,
-            //kInvalidCoordinates,
+            kInvalidCoordinates,
             //kSpeedLimitExceeded,
         };
Index: trunk/FACT++/src/drivectrl.cc
===================================================================
--- trunk/FACT++/src/drivectrl.cc	(revision 18529)
+++ trunk/FACT++/src/drivectrl.cc	(revision 18530)
@@ -1943,4 +1943,23 @@
     int StartTracking(const Source &src, double offset, double angle, double period=0)
     {
+        if (src.ra<0 || src.ra>=24)
+        {
+            ostringstream out;
+            out << "Right ascension out of range [0;24[: Ra=" << src.ra << "h Dec=" << src.dec << "deg";
+            if (!src.name.empty())
+                out << " [" << src.name << "]";
+            T::Error(out);
+            return State::kInvalidCoordinates;
+        }
+        if (src.dec<-90 || src.dec>90)
+        {
+            ostringstream out;
+            out << "Declination out of range [-90;90]: Ra=" << src.ra << "h Dec=" << src.dec << "deg";
+            if (!src.name.empty())
+                out << " [" << src.name << "]";
+            T::Error(out);
+            return State::kInvalidCoordinates;
+        }
+
         ostringstream out;
         out << "Tracking Ra=" << src.ra << "h Dec=" << src.dec << "deg";
@@ -2704,4 +2723,6 @@
         T::AddStateName(State::kAllowedRangeExceeded, "OutOfRange",
                         "Telecope went out of range during tracking");
+        T::AddStateName(State::kInvalidCoordinates, "InvalidCoordinates",
+                        "Tracking coordinates out of range");
 
 
