diff --git a/SConscript.py b/SConscript.py
index fdb351d10a1d61520979ec5c61d64ea637fc1109..6ecc2d24f131624872f8dc79af46669d3576af95 100644
--- a/SConscript.py
+++ b/SConscript.py
@@ -20,7 +20,11 @@ for hcheaderfile in hcheadersbase:
     filename = '%s' % hcheaderfile
     basefilename = filename.rsplit('.',1)
     newbasefilename = basefilename[0].rsplit('/',1)
-    cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1]
+    # Assume filenames beginning with Scaler are decoder classes
+    if newbasefilename[1][:6] == 'Scaler':
+        cmd1 = "echo '#pragma link C++ class Decoder::%s+;' >> src/HallC_LinkDef.h" % newbasefilename[1]
+    else:
+        cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1]
     os.system(cmd1)
 
 cmd = "cat src/HallC_LinkDef.h_postamble >> src/HallC_LinkDef.h"
diff --git a/src/Scaler9001.cxx b/src/Scaler9001.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6406efa9e8679fb837d945002379648c1b01ac54
--- /dev/null
+++ b/src/Scaler9001.cxx
@@ -0,0 +1,32 @@
+////////////////////////////////////////////////////////////////////
+//
+//   TI scalers
+//     Identified by a 9001 bank
+//
+/////////////////////////////////////////////////////////////////////
+
+#include "Scaler9001.h"
+
+using namespace std;
+
+namespace Decoder {
+
+Module::TypeIter_t Scaler9001::fgThisType =
+  DoRegister( ModuleType( "Decoder::Scaler9001" , 9001 ));
+
+Scaler9001::Scaler9001(Int_t crate, Int_t slot) : GenScaler(crate, slot) {
+  Init();
+}
+
+Scaler9001::~Scaler9001() {
+}
+
+void Scaler9001::Init() {
+  fNumChan = 12;
+  fWordsExpect = 12;
+  GenScaler::GenInit();
+}
+
+}
+
+ClassImp(Decoder::Scaler9001)
diff --git a/src/Scaler9001.h b/src/Scaler9001.h
new file mode 100644
index 0000000000000000000000000000000000000000..148e87c5789f83877c595bbf5fe830320a49cf5b
--- /dev/null
+++ b/src/Scaler9001.h
@@ -0,0 +1,35 @@
+#ifndef Scaler9001_
+#define Scaler9001_
+
+/////////////////////////////////////////////////////////////////////
+//
+//   Scaler9001
+//   TI scalers
+//
+/////////////////////////////////////////////////////////////////////
+
+#include "GenScaler.h"
+
+namespace Decoder {
+
+class Scaler9001 : public GenScaler {
+
+public:
+
+   Scaler9001() {};
+   Scaler9001(Int_t crate, Int_t slot);
+   virtual ~Scaler9001();
+
+   virtual void Init();
+
+private:
+
+   static TypeIter_t fgThisType;
+
+   ClassDef(Scaler9001,0)  // TI scalers
+
+};
+
+}
+
+#endif
diff --git a/src/Scaler9250.cxx b/src/Scaler9250.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a3ed21f1d0515bf45855c75d41625755c1395aac
--- /dev/null
+++ b/src/Scaler9250.cxx
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////
+//
+//   FADC250 scalers
+//
+/////////////////////////////////////////////////////////////////////
+
+#include "Scaler9250.h"
+
+using namespace std;
+
+namespace Decoder {
+
+Module::TypeIter_t Scaler9250::fgThisType =
+  DoRegister( ModuleType( "Decoder::Scaler9250" , 9250 ));
+
+Scaler9250::Scaler9250(Int_t crate, Int_t slot) : GenScaler(crate, slot) {
+  Init();
+}
+
+Scaler9250::~Scaler9250() {
+}
+
+void Scaler9250::Init() {
+  fNumChan = 16;
+  fWordsExpect = 16;
+  GenScaler::GenInit();
+}
+
+}
+
+ClassImp(Decoder::Scaler9250)
diff --git a/src/Scaler9250.h b/src/Scaler9250.h
new file mode 100644
index 0000000000000000000000000000000000000000..1d9ddca9eb72ab8e7e7a604a13db1b728a31561b
--- /dev/null
+++ b/src/Scaler9250.h
@@ -0,0 +1,35 @@
+#ifndef Scaler9250_
+#define Scaler9250_
+
+/////////////////////////////////////////////////////////////////////
+//
+//   Scaler9250
+//   FADC250 scalers
+//
+/////////////////////////////////////////////////////////////////////
+
+#include "GenScaler.h"
+
+namespace Decoder {
+
+class Scaler9250 : public GenScaler {
+
+public:
+
+   Scaler9250() {};
+   Scaler9250(Int_t crate, Int_t slot);
+   virtual ~Scaler9250();
+
+   virtual void Init();
+
+private:
+
+   static TypeIter_t fgThisType;
+
+   ClassDef(Scaler9250,0)  // FADC250 scalers
+
+};
+
+}
+
+#endif
diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx
index cf1ddcd05e26d949e4911b5d51d9fda6caa1882c..525bf22725dd6b84ecac7e223334e8aab9985565 100644
--- a/src/THcScalerEvtHandler.cxx
+++ b/src/THcScalerEvtHandler.cxx
@@ -40,6 +40,8 @@ To enable debugging you may try this in the setup script
 #include "Scaler3801.h"
 #include "Scaler1151.h"
 #include "Scaler560.h"
+#include "Scaler9001.h"
+#include "Scaler9250.h"
 #include "THaCodaData.h"
 #include "THaEvData.h"
 #include "TNamed.h"
@@ -387,6 +389,12 @@ THaAnalysisObject::EStatus THcScalerEvtHandler::Init(const TDatime& date)
 	case 3801:
 	  scalers.push_back(new Scaler3801(icrate, islot));
 	  break;
+	case 9001:		// TI Scalers
+	  scalers.push_back(new Scaler9001(icrate, islot));
+	  break;
+	case 9250:		// FADC250 Scalers
+	  scalers.push_back(new Scaler9250(icrate, islot));
+	  break;
 	}
 	if (scalers.size() > 0) {
 	  UInt_t idx = scalers.size()-1;