diff --git a/code/classes/SCDsignal/SCDsignal.m b/code/classes/SCDsignal/SCDsignal.m
index 6bc36388de5fdb18006144ded84a611273a6abc8..e1885e944f5306c9e8d6255bc1ae1c7b5c4039a2 100644
--- a/code/classes/SCDsignal/SCDsignal.m
+++ b/code/classes/SCDsignal/SCDsignal.m
@@ -22,6 +22,8 @@ classdef SCDsignal
     
     function type = datatype(obj)
       type = class(obj.Value);
+      assert(ismember(type,{'single', 'boolean', 'int8','int16','int32'}),...
+        sprintf('DataType %s is not supported in SCDalgo', type))
     end
     
     function str = struct(obj)
@@ -79,8 +81,8 @@ classdef SCDsignal
     
     function Name = BusName(obj)
       % Returns the bus name for this signal
-      type = class(obj.Value);
-      siz  = size(obj.Value);
+      type = obj.datatype;
+      siz  = obj.datasize;
       assert(numel(siz)==2,'3 or larger dimensional data not supported')
       if all(siz == 1)
         sizestr = '_Scalar';