diff --git a/source/Commands/CommandObjectDisassemble.cpp b/source/Commands/CommandObjectDisassemble.cpp
index c2d8968..357ff95 100644
--- a/source/Commands/CommandObjectDisassemble.cpp
+++ b/source/Commands/CommandObjectDisassemble.cpp
@@ -344,7 +344,10 @@
             }
             Symbol *symbol = frame->GetSymbolContext(eSymbolContextSymbol).symbol;
             if (symbol)
-                range = symbol->GetAddressRangeRef();
+            {
+                range.GetBaseAddress() = symbol->GetAddress();
+                range.SetByteSize(symbol->GetByteSize());
+            }
         }
 
         // Did the "m_options.frame_line" find a valid range already? If so
@@ -395,8 +398,8 @@
                     SymbolContext sc(frame->GetSymbolContext(eSymbolContextFunction | eSymbolContextSymbol));
                     if (sc.function)
                         range.GetBaseAddress() = sc.function->GetAddressRange().GetBaseAddress();
-                    else if (sc.symbol && sc.symbol->GetAddressRangePtr())
-                        range.GetBaseAddress() = sc.symbol->GetAddressRangePtr()->GetBaseAddress();
+                    else if (sc.symbol && sc.symbol->ValueIsAddress())
+                        range.GetBaseAddress() = sc.symbol->GetAddress();
                     else
                         range.GetBaseAddress() = frame->GetFrameCodeAddress();
                 }
@@ -437,8 +440,11 @@
                     SymbolContext sc(frame->GetSymbolContext(eSymbolContextFunction | eSymbolContextSymbol));
                     if (sc.function)
                         range = sc.function->GetAddressRange();
-                    else if (sc.symbol && sc.symbol->GetAddressRangePtr())
-                        range = *sc.symbol->GetAddressRangePtr();
+                    else if (sc.symbol && sc.symbol->ValueIsAddress())
+                    {
+                        range.GetBaseAddress() = sc.symbol->GetAddress();
+                        range.SetByteSize (sc.symbol->GetByteSize());
+                    }
                     else
                         range.GetBaseAddress() = frame->GetFrameCodeAddress();
                 }
